shell编程——日志输出的同时显屏

在执行脚本的时候我们常常需要将执行过程全部输出到日志里,以备出现报错时可以跟踪分析,开始我用的是exec:

exec 1>info.log  #把全部执行过程输出到info日志中
exec 2>error.log #把系统抛出和脚本定义的错误输出到error日志中

但后来发现这样很多需要显示到屏幕的内容也不出来的,怎么样才能保证即在显屏的同时输出日志呢?我选择了使用fifo管道文件和tee

mkfifo info.fifo
mkfifo error.fifo
#创建管道文件
cat info.fifo | tee -a info.log &
exec 1>info.fifo   
#把执行过程输出到info文件中
cat error.fifo | tee -a error.log &
exec 2>error.fifo 
#把报错输出到error文件中
.
.
执行脚本
.
.
printf "\015"  #结束从管道文件中获取信息
posted @ 2015-05-24 15:14  Jim.Deng  阅读(2202)  评论(0编辑  收藏  举报