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

use*_*468 3 bash shell

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

( some_command ) >/dev/null 2>/dev/null
Run Code Online (Sandbox Code Playgroud)

但我仍然印有一些东西.这里some_command运行一个私有的命令行程序给我的组织.子shell是怎么来的东西打印到控制台,而我既重定向STDOUT和STDERR?

Eev*_*vee 6

一种可能性是该程序特别粗鲁并且直接打印到控制终端 ,这将绕过所有重定向.

例如:

$ ( echo "can't touch this" > /dev/tty ) >/dev/null 2>/dev/null
can't touch this
Run Code Online (Sandbox Code Playgroud)

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