脚本中$(命令)和`命令`之间的区别

时间:2013-05-24 12:43:51

标签: linux shell unix

执行这样的命令有什么区别:

var=$(ls -alh /dir)

这样做:

var=`ls -alh /dir`

一种方法是否可以用于更多的口译员?

1 个答案:

答案 0 :(得分:2)

他们都是command substitution

第3.5.4节http://www.gnu.org/software/bash/manual/bashref.html

  

Bash通过执行命令并替换来执行扩展   命令用命令的标准输出替换,用any   尾随新行已删除。嵌入的换行不会被删除,但它们会被删除   可以在分词期间删除。命令替换$(cat   文件)可以用等效但更快的$(< file)替换。

     

当使用旧式反引号替换形式时,反斜杠   保留其字面含义,除非后跟'$','`'或'\'。   第一个不带反斜杠的反引号终止命令   代换。使用$(命令)表单时,所有字符之间   括号组成命令;没有人受到特别对待。

     

命令替换可以嵌套。使用反引号时嵌套   形式,用反斜杠逃避内部反引号。

     

如果替换出现在双引号内,则分词和   不对结果执行文件名扩展。