如何在 Linux 中隐藏 shell 应用程序的输出?

Jad*_*ias 55 linux shell

如何在 Linux 中隐藏 shell 应用程序的屏幕输出 (printf)?

the*_*ive 78

您可以重定向任何程序的输出,使其不可见。

$ program > /dev/null
Run Code Online (Sandbox Code Playgroud)

这将重定向标准输出 - 您仍然会看到任何错误

$ program &> /dev/null
Run Code Online (Sandbox Code Playgroud)

这将重定向所有输出,包括错误。

  • 顺便说一句,您可能希望将该 wget 输出保存到日志文件中,因此当/如果您的下载停止工作时,您可以找出原因。如果它无论如何都在脚本中。如果这是一次性的跑步,那么是的,到垃圾桶 (2认同)

Mat*_*ons 33

命令行上提供了三个 I/O 设备。

 standard input  - 0
 standard output - 1
 standard error  - 2
Run Code Online (Sandbox Code Playgroud)

要将标准输出(默认输出)重定向到文件(并覆盖文件),请使用

 command > file.log
Run Code Online (Sandbox Code Playgroud)

要附加到 file.log,请使用两个>s

 command >> file.log
Run Code Online (Sandbox Code Playgroud)

要将标准错误重定向到 file.log,请使用

 command 2> file.log
Run Code Online (Sandbox Code Playgroud)

并附加

 command 2>> file.log
Run Code Online (Sandbox Code Playgroud)

将输出组合成一个流并将它们全部发送到一个地方

 command > file.log 2>&1
Run Code Online (Sandbox Code Playgroud)

这将 2(标准错误)发送到 1(标准输出),并将标准输出发送到 file.log

请注意,也可以将标准输入重定向到需要标准输入的命令中

 command << file.txt
Run Code Online (Sandbox Code Playgroud)


有关更多详细信息,请查看高级 Bash 脚本指南

  • @nomoreink:它实际上是 2 个命令,一个是 `&gt; file`,第二个是 `2&gt;&amp;1`。第一个将标准重定向到一个文件。第二个采用第二个文件描述符并将其重定向到第一个。你可以反过来,使用 `&gt;&amp;2` 将标准输出重定向到标准错误,然后使用 `2&gt; file` 将标准错误重定向到一个文件。 (4认同)

小智 14

隐藏标准输出:

./command >/dev/null
Run Code Online (Sandbox Code Playgroud)

隐藏标准输出和标准错误:

./command >/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

隐藏标准输出和标准错误并释放终端(在后台运行命令):

./command >/dev/null 2>&1 &
Run Code Online (Sandbox Code Playgroud)