在bash中,()
和$()
都会创建一个子shell。
彼此有什么区别?他们的典型用法是什么?
答案 0 :(得分:18)
()
只是创建一个复合命令,在括号内运行命令。 $()
也会这样做,但也会替换输出。
来自文档:
<强> (list)
强>
list
在子shell环境中执行...变量赋值和内置
命令完成后,影响shell环境的命令不会保持有效。返回状态是
退出状态list
。
命令替换
命令替换允许输出命令来替换命令名称。有两种形式:
$(command)
或
`command`
Bash通过执行command
并使用命令的标准输出替换命令替换来执行扩展,
删除任何尾随换行符。