在后台运行命令并将输出打印到文件而不打印到屏幕

use*_*780 3 io-redirection background-process

假设我想在后台运行一些东西并将它打印到一个文件中。但是,当我执行以下操作时,它仍然会打印到屏幕上......有谁知道为什么?我该怎么办?谢谢你。

./mc.x & 2>&1 > test.out  
wait
Run Code Online (Sandbox Code Playgroud)

小智 6

将背景放在最后,如:

./mc.x 2>&1 > test.out &
Run Code Online (Sandbox Code Playgroud)

注意:您的重定向是无效的,因为 2>&1 将使 stderr 去到 stdout 去的地方(即显示和它无论如何去的地方)。然后,标准输出将进入文件 test.out。交换它们的顺序会使所有 stderr+stdout 都转到文件 test.out。

  • 您的答案是否与重定向有相同的问题?不应该是`> test.out 2>&1`吗? (3认同)