1. 苏葳的备忘录首页
  2. 编程

Unix同时在屏幕和文件中记录输出

shell unix tee在Linux或Unix下执行某些脚本或命令时,如果脚本中没有写日志文件功能,一般是可以在屏幕上显示输出结果或调试信息的。那么如果想要把标准输出或错误输出保存到文件中的话,也可以用重定向功能实现。如果在把调试信息记录入文件的同时,还想在屏幕上显示,该如何操作呢?可以考虑使用tee命令。此命令用于将标准输出保存到文件里。

sh testtt.sh 2>&1 | tee logfile.log

若要在同一脚本内实现如上功能,则可用如下脚本:

logfile=test.log
fifofile=test.fifo
mkfifo $fifofile
cat $fifofile | tee $logfile &
exec 1>$fifofile
exec 2>&1
#执行一些命令
print "\015"

但是在AIX下发现仍有些问题,即fifo文件已经被删除,仍会持续输出到日志文件中。最后只得看完后删除日志。

原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/273.html

发表评论

邮箱地址不会被公开。 必填项已用*标注