它们之间的区别是:
( foo; bar; )
Run Code Online (Sandbox Code Playgroud)
它将执行 a 中的命令subshell
,因此如果您在子外壳中进行任何更改,它们将不会出现在subshell
. 喜欢
i=2; ( ((i++)); echo $i ); echo $i
Run Code Online (Sandbox Code Playgroud)
你会得到输出:
3
2
Run Code Online (Sandbox Code Playgroud)
如果你在里面做同样的事情,{ }
那么它会在同一个环境中执行,所以变化很重要。喜欢
i=2; { ((i++)); echo $i; }; echo $i
Run Code Online (Sandbox Code Playgroud)
会给:
3
3
Run Code Online (Sandbox Code Playgroud)
现在让我们来看看流水线,流水线用于获取输入并为一些命令提供输出。所以命令:
a | b
Run Code Online (Sandbox Code Playgroud)
command 的输出a
将作为 command 的输入b
。
echo "hi" | cat
Run Code Online (Sandbox Code Playgroud)
会给你输出hi
。所以echo "hi"
ie 的输出hi
将是cat
命令的输入。
归档时间: |
|
查看次数: |
131 次 |
最近记录: |