假设有人正在编写bash脚本,其中需要静默stdout,stderr并提供自定义输出.
是否可以使用如下功能:
dump(){
"$@" > /dev/null 2>&1
}
然后
dump rm filename || echo "custom-message"
它无法按预期运行的可能情况是什么?
解决方法:
这是一个很好的技术.我总是使用类似的东西.优点:
>保留命令的退出代码.
>隐藏几乎所有程序的输出,除非他们直接写入/ dev / tty或/ dev / console,这很少见,而且可能是有充分理由的.
>适用于shell内置函数以及二进制文件.您可以将此用于cd,pushd / popd等.
>不会停止命令从stdin读取.如果您愿意,可以在管道的末尾使用dump.
>“$@”使用空格,全局和其他特殊字符正确处理命令名称和参数.
它对我来说很好看!
我唯一的挑剔是名称转储不是最清楚的.