执行这样的命令有什么区别:
var=$(ls -alh /dir)
这样做:
var=`ls -alh /dir`
一种方法是否可以用于更多的口译员?
答案 0 :(得分:2)
他们都是command substitution
第3.5.4节http://www.gnu.org/software/bash/manual/bashref.html
Bash通过执行命令并替换来执行扩展 命令用命令的标准输出替换,用any 尾随新行已删除。嵌入的换行不会被删除,但它们会被删除 可以在分词期间删除。命令替换$(cat 文件)可以用等效但更快的$(< file)替换。
当使用旧式反引号替换形式时,反斜杠 保留其字面含义,除非后跟'$','`'或'\'。 第一个不带反斜杠的反引号终止命令 代换。使用$(命令)表单时,所有字符之间 括号组成命令;没有人受到特别对待。
命令替换可以嵌套。使用反引号时嵌套 形式,用反斜杠逃避内部反引号。
如果替换出现在双引号内,则分词和 不对结果执行文件名扩展。