Bash subshel​​l:括号:()VS dollar-parenthese:$()

时间:2013-10-19 04:14:51

标签: bash

在bash中,()$()都会创建一个子shell。

彼此有什么区别?他们的典型用法是什么?

1 个答案:

答案 0 :(得分:18)

()只是创建一个复合命令,在括号内运行命令。 $()也会这样做,但也会替换输出。

来自文档:

  1. <强> (list)
    list在子shell环境中执行...变量赋值和内置           命令完成后,影响shell环境的命令不会保持有效。返回状态是           退出状态list

  2. 命令替换
       命令替换允许输出命令来替换命令名称。有两种形式:

    $(command)
    

    `command`
    

    Bash通过执行command并使用命令的标准输出替换命令替换来执行扩展,    删除任何尾随换行符。