命令代换``和$()区别,eval命令

来源:互联网 发布:elsevier数据库网址 编辑:程序博客网 时间:2024/05/20 18:16

eval
eval主要用在对参数的特殊处理上,一般的命令行,shell对参数只执行一遍。eval会对后面的参数进行两遍扫描,如果第一遍扫描,cmdline只是个普通参数,就直接执行命令。若cmdline的变量又间接引用,则扫描第二遍,执行间接引用的语义。而用echo $cmd时,只进行一次扫描。
这里写图片描述
“和$()区别

  • $()用起来简洁,倒引号较容易混淆。
  • 多层结构的替换中,倒引号需要/(跳脱处理)处理,写起来麻烦。
  • 倒引号基本在shell中使用,移植性较高,并不是搜有的类unix系统都支持$()这种方式。
    但是两者都是命令代换
    这里写图片描述
    这里写图片描述