我在bash终端中做了类似下面的事情
( some_command ) >/dev/null 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
但我仍然印有一些东西.这里some_command运行一个私有的命令行程序给我的组织.子shell是怎么来的东西打印到控制台,而我既重定向STDOUT和STDERR?
一种可能性是该程序特别粗鲁并且直接打印到控制终端 ,这将绕过所有重定向.
例如:
$ ( echo "can't touch this" > /dev/tty ) >/dev/null 2>/dev/null
can't touch this
Run Code Online (Sandbox Code Playgroud)
(/dev/tty指当前进程的控制终端.)