使用函数建议使用bash脚本中的静音输出?

时间:2015-10-05 13:41:42

标签: linux bash shell unix io-redirection

假设某人正在编写bash脚本,其中需要静默stdout,stderr并提供自定义输出。

建议使用如下功能:

dump(){
    "$@" > /dev/null 2>&1
}

然后

dump rm filename || echo "custom-message"

它无法按预期运行的可能情况有哪些?

1 个答案:

答案 0 :(得分:6)

这是一项很好的技巧。我总是使用类似的东西。优点:

  • 保留命令的退出代码。
  • 隐藏几乎所有节目的输出,除非他们直接写入/dev/tty/dev/console,这种情况很少见,而且可能是有充分理由的。
  • 适用于shell内置函数以及二进制文件。您可以将其用于cdpushd / popd
  • 不会停止命令从stdin读取。如果您愿意,可以在管道的末尾使用dump
  • "$@"使用空格,全局和其他特殊字符正确处理命令名称和参数。

对我来说很好看!

我唯一的挑剔是dump这个名字并不是最清楚的。