Bash 我已经重定向了stdout和stderr,为什么我仍然得到一些输出?
我在bash终端中做了如下操作Bash 我已经重定向了stdout和stderr,为什么我仍然得到一些输出?,bash,shell,Bash,Shell,我在bash终端中做了如下操作 ( some_command ) >/dev/null 2>/dev/null 但我仍然有一些印刷品。这里some_command运行我的组织专用的命令行程序。当我重定向STDOUT和STDERR时,子shell是如何将内容打印到控制台的?一种可能是程序特别粗糙,直接打印到控制台,这将绕过所有重定向 例如: $ ( echo "can't touch this" > /dev/tty ) >/dev/null 2>/dev/null
( some_command ) >/dev/null 2>/dev/null
但我仍然有一些印刷品。这里
some_command
运行我的组织专用的命令行程序。当我重定向STDOUT
和STDERR
时,子shell是如何将内容打印到控制台的?一种可能是程序特别粗糙,直接打印到控制台,这将绕过所有重定向
例如:
$ ( echo "can't touch this" > /dev/tty ) >/dev/null 2>/dev/null
can't touch this
(指当前进程的控制终端。)不一定粗鲁;有时这是必要的(例如,想想交互式密码提示)。