我在 bash 终端中做了类似下面的事情

( some_command ) >/dev/null 2>/dev/null

但是我仍然打印了一些东西。这里 some_command 运行我的组织专用的命令行程序。当我重定向 STDOUTSTDERR 时,子 shell 如何设法将某些内容打印到控制台?

最佳答案

一种可能性是程序特别粗鲁,直接打印到 controlling terminal,这将绕过所有重定向。

例如:

$ ( echo "can't touch this" > /dev/tty ) >/dev/null 2>/dev/null
can't touch this

( /dev/tty 指的是当前进程的控制终端。)

关于bash - 我已经重定向了 stdout 和 stderr,为什么我仍然得到一些输出?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15151175/

10-15 19:31