在这里,只有第二个 echo 提供给 grep。
$ echo a1; echo a2 | grep -o a
a1
a
这里两个回声都是这样做的。
$ { echo a1; echo a2 ;} | grep -o a
a
a
这里也是。
$ (echo a1; echo a2 )| grep -o a
a
a
那么()和{}有什么区别呢?
在这里,只有第二个 echo 提供给 grep。
$ echo a1; echo a2 | grep -o a
a1
a
这里两个回声都是这样做的。
$ { echo a1; echo a2 ;} | grep -o a
a
a
这里也是。
$ (echo a1; echo a2 )| grep -o a
a
a
那么()和{}有什么区别呢?
圆括号引入了一个子壳。
请注意,这
$$
在子 shell 中保持不变,因为 bash 不需要重新初始化。$BASHPID
变化,虽然。