我见过echo在很多地方都这样使用过:
echo >&2 message text ...
Run Code Online (Sandbox Code Playgroud)
这是什么意思?
但我知道2>&1,我不知道如何解释上面的用法.
有人可以解释一下吗?
Jit*_*ite 104
要快速解释其他人遗漏的内容:
echo "hey" >&2
>重定向标准输出(隐式1>)
&接下来是文件描述符,而不是文件(仅用于右侧>)
2 stderr文件描述符号
stdout从echo命令重定向到stderr.(如果您要使用echo "hey" >2,则输出hey到一个名为的文件2)
Mic*_*yan 24
>&2这里的用法是将输出发送到标准错误而不是标准输出.这通常是发送日志输出的更好的地方,这不是计算的实际结果,特别是如果结果打印到标准输出(可能重定向到文件)而不是某些其他文件输出(即将日志记录发送到标准错误确保它不会包含在重定向到输出文件的实际输出中.
虽然其他答案给出了很好的解释,但他们遗漏了这里提出的确切问题。最好的答案是直接对问题发表评论,但可惜的是,Stack Overflow 认为我不值得添加评论。
所以,引用三元组:
命令行中重定向的 previse [ sic ] 位置并不重要。所有
>&2 echo messageandecho >&2 message和echo message >&2都是等价的。
这正是我来寻找的确切问题,目前的答案都没有回答;他们只是解释我已经知道的事情。另一方面,这个问题可以从更好的措辞中受益,但同样,我被禁止发表评论,所以......