Bash 2>&2有意义吗?如果是,它有什么作用?
我在脚本中使用了2>&2,希望stderr不会显示在终端上,而是重定向到/dev/fd/。错误仍然显示在终端上。我的理解有问题吗? 谢谢 编辑: 我想将标准错误重定向到日志文件以及终端上 这是通过点击和试用来实现的Bash 2>&2有意义吗?如果是,它有什么作用?,bash,Bash,我在脚本中使用了2>&2,希望stderr不会显示在终端上,而是重定向到/dev/fd/。错误仍然显示在终端上。我的理解有问题吗? 谢谢 编辑: 我想将标准错误重定向到日志文件以及终端上 这是通过点击和试用来实现的 exec 2> >(while read -r line; do printf '%s %s\n' "$(date --rfc-3339=seconds)" "$line" | tee -a $LOG_FILE; done >&2) 但事实并非如此 exe
exec 2> >(while read -r line; do printf '%s %s\n' "$(date --rfc-3339=seconds)" "$line" | tee -a $LOG_FILE; done >&2)
但事实并非如此
exec 2> >(while read -r line; do printf '%s %s\n' "$(date --rfc-3339=seconds)" "$line" | tee -a $LOG_FILE; done)
我想知道>&2做了什么,命令1起作用,但命令2不起作用。不,它没有意义 使用2>&2,可以将文件描述符2 stderr重定向到与文件描述符2关联的资源。所以,您不需要更改任何内容,只需将stderr重定向到它已经指向的位置
stderr的默认资源是终端,这就是为什么stderr输出仍然显示在终端上。这意味着您正在将bash错误重定向到stderr。。。你在这里什么都没做。尝试2>并阅读:那么为什么它会显示在终端上?应该重定向到标准错误?这是从终端运行时的标准错误。您试图实现什么?