22

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

彼此之间有什么区别?它们的典型用途是什么?

4

1 回答 1

25

()只需创建一个复合命令,运行括号内的命令。 $()做同样的事情,但也替代了输出。

从文档:

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

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

    $(command)
    

    或者

    `command`
    

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

于 2013-10-19T04:16:11.343 回答