dim*_*414 19 cron io-redirection shell-script
除非程序以非零代码退出,否则抑制输出(stdout 和 stderr)的最佳方法是什么?我在想:
quiet_success()
{
file=$(mktemp)
if ! "$@" > "$file" 2>&1; then
cat "$file"
fi
rm -f "$file"
}
Run Code Online (Sandbox Code Playgroud)
并运行,quiet_success my_long_noisy_script.sh但我不确定是否有更好的方法。我觉得这必须是其他人需要做的事情。
对于上下文,我希望将其添加到我的 cron 脚本中,以便在失败时通过电子邮件发送所有内容,但如果失败则不会。
Mic*_*zek 16
无论如何,您都必须在某处缓冲输出,因为您需要等待退出代码才能知道要做什么。像这样的事情可能是最简单的:
$ output=`my_long_noisy_script.sh 2>&1` || echo $output
Run Code Online (Sandbox Code Playgroud)
Pet*_*aut 11
该moreutils软件包包含chronic用于此目的的程序。你只是称之为
chronic my_program args ...
Run Code Online (Sandbox Code Playgroud)
在 cron 工作中非常方便。
| 归档时间: |
|
| 查看次数: |
5835 次 |
| 最近记录: |