我不明白bash中所有这些命令的区别是什么,
echo "Hello world" > log&
echo "Hello world" >& log
echo "Hello world" >& log&
每个 & 有什么作用?
据我所知,在末尾添加 & 将整个内容发送到后台。但是在 > 后面添加 & 呢?
编写时是否有任何优势?
echo "Hello world" >& log&
替代
echo "Hello world" > log&
我不明白bash中所有这些命令的区别是什么,
echo "Hello world" > log&
echo "Hello world" >& log
echo "Hello world" >& log&
每个 & 有什么作用?
据我所知,在末尾添加 & 将整个内容发送到后台。但是在 > 后面添加 & 呢?
编写时是否有任何优势?
echo "Hello world" >& log&
替代
echo "Hello world" > log&
>&
符号将标准输出和标准错误一起重定向。echo "Hello world"
写任何标准错误内容,因此&
不会改变任何内容;但是如果它确实向标准输出和标准错误都写入了内容,则log
将同时包含两者。&>
优于>&
(可能是因为>&
易与类似>&1
的符号混淆,该符号执行完全不同的操作)。
&>
而不是>&
以避免歧义的建议)。 - Charles Duffy