我试图将标准输出& stderr存储到$ log和$ script_log中。 $ log包含所有其他使用的进程日志>> $ script_log只需要从set_flag.sh和update.sh中记录日志。在bash中没有完全重定向标准输出
set_flag.sh 2>&1 >> $log | tee -a $log > $script_log
update.sh 2>&1 >> $log | tee -a $log >> $script_log
$ log很好。我可以看到来自set_flag.sh和update.sh的所有进程日志,但不知何故$ script_log有来自set_flag的日志,但来自update.sh的部分日志。 不知道为什么....
任何人都可以解释和帮助我吗?
感谢,
为什么要写入$ log?为什么不只是'script | tee> $ script_log'? T恤已经为你分裂了。没有必要缓存到一个文件,从该文件读取发球,只写出另一个文件。 –
@MarcB'tee'从标准输入读取,所有传递的文件参数都是输出文件。 – Siguza
这就是说,由于输入重定向是在管道之前完成的,所以我不知道'tee'怎么能接收任何输入。 – Siguza