大佬教程收集整理的这篇文章主要介绍了将bash stderr发送到logfile,但仅在存在错误时才发送,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
.script >2 "errorlog.$(date)"
问题是每次运行脚本时都会创建一个空白日志文件,即使错误不存在也是如此.我也在网上和几本书中看过,并且只有在存在错误时才能弄清楚如何创建日志文件.
logfile="errorlog.$(date)" # Note your typo; it's 2>,not >2 script 2> "$logfile"; [ -s "$logfile" ] || rm -f "$logfile"
我使用-f以防万一,因为如果$logfile不存在,-s可能会失败,而不仅仅是它是空的.我用 ;分离命令,因为$logfile是否包含任何内容不依赖于脚本是否成功.
您可以将其包装在一个函数中,以便于使用.
save_log () { logfile=${1:-errorlog.$(date)} cat - > "$logfile" [ -s "$logfile" ] || rm -f "$logfile" } script 2> >( save_log ) script 2> >( save_log my_logfile.txt )
不像重定向到文件那么简单,并且取决于非标准功能(进程替换),但也不是太糟糕.
以上是大佬教程为你收集整理的将bash stderr发送到logfile,但仅在存在错误时才发送全部内容,希望文章能够帮你解决将bash stderr发送到logfile,但仅在存在错误时才发送所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。