在 Unix shell 脚本中将多个命令括在括号内有什么用

bvb*_*bvb 1 unix shell

有多种方法可以一次性运行多个命令。一种方法是用分号分隔每个命令:

ls;who;banner Hi
Run Code Online (Sandbox Code Playgroud)

另一种方法是将多个命令括在括号中。

(cd mydir;pwd)
Run Code Online (Sandbox Code Playgroud)

将它们括在括号中会发生什么?

Jon*_*oni 6

括号创建一个子 shell。子 shell 是当前 shell 的副本,这意味着状态更改(例如使用更改工作目录cd、设置 shell 变量或导出环境变量)不会影响原始 shell。

在本例中,该cd命令更改工作目录并pwd显示这一点。当提示符返回时,您仍将位于之前所在的目录中,因为cd仅在子 shell 中更改了目录。