我重定向了stdout和stderr,为什么我仍然得到一些输出?

时间:2013-03-01 05:31:14

标签: bash shell

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

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

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

1 个答案:

答案 0 :(得分:6)

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

例如:

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

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