自动将输出重定向到 /dev/null

wat*_*sky 4 linux bash

我有一个带有大量输出的简单脚本:

#!/bin/bash
{
apt-get update && apt-get upgrade
} 2>&1
Run Code Online (Sandbox Code Playgroud)

./script.sh >/dev/null 2>&1它开始沉默它。

我可以从内部使脚本静音吗?

Mat*_*ieu 7

您可以在脚本中添加重定向:

--编辑--杰夫·沙勒评论后

#!/bin/bash
# case 1: if you want to hide all message even errors
{
apt-get update && apt-get upgrade
} > /dev/null 2>&1


#!/bin/bash
# case 2: if you want to hide all messages but errors
{
apt-get update && apt-get upgrade
} > /dev/null 
Run Code Online (Sandbox Code Playgroud)

  • 请注意,`2>&1 > /dev/null` 将 stderr 分配给 stdout,*then* 将 stdout 分配给 /dev/null —— 结果将是您将看到 stderr 消息。如果目标是“使脚本静音”,您应该将分配重新安排为:`> /dev/null 2>&1` (2认同)