bash 中的“1>&2”是啥意思? [复制]
Posted
技术标签:
【中文标题】bash 中的“1>&2”是啥意思? [复制]【英文标题】:What does “1>&2” mean in bash? [duplicate]bash 中的“1>&2”是什么意思? [复制] 【发布时间】:2016-12-10 00:25:04 【问题描述】:1>&2
在 bash 脚本中是什么意思?
例如,bash 脚本中的以下行是做什么的?
echo "$1 is not a directory!" 1>&2
我使用 MacOS X。我的 bash 脚本是:
if [ ! -d $1 ]; then
echo "$1 is not a directory" 1>&2
exit 1
fi
【问题讨论】:
"1>&2 # Redirects stdout to stderr.
" - 来自I/O Redirection
搜索 [bash] "1>&2"
显示 799 个 Q/A。你发帖前有没有费心看?祝你好运。
@shellter 无需重复发表相同的内容。
man bash
假设您有一个程序,您想通过将输出重定向到日志来捕获格式良好的输出到日志文件(例如./myscript.sh > my log
但是,您还想输出错误消息,但是不希望他们弄乱您整洁的日志。由于echo
和printf
都写入stdout
,如果您不采取任何措施来重定向错误消息,它们最终也会出现在您整洁的日志文件中。所以,为了保持它们从您的日志中出来,您将错误重定向到stderr
,因此它们仍然输出(到屏幕),而您的正常输出到您的日志。
【参考方案1】:
它将消息输出到stderr
。因此1>&2
表示将stdout
重定向到stderr
。
【讨论】:
以上是关于bash 中的“1>&2”是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章