标签: linux bash variables
我运行两个命令,他们似乎都做同样的事情,这是真的还是有什么事情发生我没有看到?
这两个似乎做同样的事情:
result=$(ls -l) result=`ls -l`
答案 0 :(得分:4)
请查看 http://nixcraft.com/shell-scripting/13288-loop-input-backticks-vs-differences.html#post19804 对这个案子的一个很好的解释。
答案 1 :(得分:1)
bash手册页在命令替换下显示以下内容。
当旧式的反引号形式 使用替换,反斜杠 保留其字面意义除外 当后跟$,`或者。该 第一个反引号前面没有 反斜杠终止命令 代换。使用时 $(命令)表单,所有字符 括号之间弥补了 命令;没有人受到特别对待。 命令替换可以嵌套。 使用反引号时嵌套 形式,逃避内部反引号 反斜杠。
当旧式的反引号形式 使用替换,反斜杠 保留其字面意义除外 当后跟$,`或者。该 第一个反引号前面没有 反斜杠终止命令 代换。使用时 $(命令)表单,所有字符 括号之间弥补了 命令;没有人受到特别对待。
命令替换可以嵌套。 使用反引号时嵌套 形式,逃避内部反引号 反斜杠。
sh手册页的在线副本: