隐藏脚本命令输出

隐藏脚本命令输出

我正在构建一个 shell 脚本来自动配置具有最佳设置的特定计算机。我想隐藏此脚本中除回显输出之外的所有输出。是否可以?

答案1

开始你的脚本:

exec 3>&1 1>/dev/null 2>&1

这会将 stdout 的原始文件描述符保存到 &3,然后将 stdout 和 stderr 重定向到 /dev/null。每当您想要打印某些内容时,请将其输出重定向到 &3,例如:

echo "This message won't be output"
echo "But this one will" >&3

如果你想隐藏这个细节,你可以定义一个与 fd 3 相呼应的函数:

say() {
    echo >&3 "$@"
}

say "This goes to the log"

答案2

/dev/null您可以通过添加将标准输出重定向到

1>/dev/null

在将产生输出的脚本的每一行的末尾。

您可以通过添加相同的方式重定向错误

2>/dev/null

大多数命令还可以选择关闭控制台的正常输出,例如-q类似的东西。检查您使用的命令的联机帮助页。

相关内容