“>&log”和“>&log&”之间的区别

时间:2018-08-26 23:32:36

标签: bash io-redirection

我不明白bash中所有这些命令之间有什么区别,

echo "Hello world" > log&
echo "Hello world" >& log
echo "Hello world" >& log&

每个&做什么?

据我了解,放在&末尾会将整个内容发送到后台。但是>之后的&呢?

写作有什么优势

echo "Hello world" >& log&

代替

echo "Hello world" > log&

1 个答案:

答案 0 :(得分:4)

根据The Bash Reference Manual, §3.6.4 "Redirecting Standard Output and Standard Error">&表示法将标准输出和标准错误一起重定向。

在您的特定示例中,我不希望echo "Hello world"写入任何标准错误信息,因此&并没有真正改变任何东西;但是如果没有将内容写到标准输出和标准错误中,则log会同时以这两种方式结束。

顺便说一句,在同一节中,等效符号&>>&更为可取(大概是因为>&容易与>&1这样的符号混淆,完全不同)。