Linux 为什么不是';";总目-n“;在通过管道传输到两个echo命令后工作?
我运行了以下命令:Linux 为什么不是';";总目-n“;在通过管道传输到两个echo命令后工作?,linux,bash,Linux,Bash,我运行了以下命令: echo "a"; echo "b" | head -n1 并预期这一结果: <p>a</p> a 但我得到的却是: <p>a</p> <p>b</p> a b 为什么我没有得到预期的结果?我的命令有错误吗?对你的陈述的评估顺序是: echo "a"; (echo "b" | head -n1) 因此,要覆盖,请使用: (echo "a"; echo "b") | head -n1 就这样…
echo "a"; echo "b" | head -n1
并预期这一结果:
<p>a</p>
a
但我得到的却是:
<p>a</p>
<p>b</p>
a
b
为什么我没有得到预期的结果?我的命令有错误吗?对你的陈述的评估顺序是:
echo "a"; (echo "b" | head -n1)
因此,要覆盖,请使用:
(echo "a"; echo "b") | head -n1
就这样…
代码>分隔命令,也分隔链。如果您想将命令组合在一起,可以使用{
}
或(
)
也可以使用卷发,我认为这不会产生子shell-{echo“a”echo“b”}head-n1