【发布时间】:2014-06-17 03:06:24
【问题描述】:
我有一系列的bash scripts echo 很多数据给stdout,偶尔也给stderr。有一个主要的bash script,然后是imports 和/或invokes 许多其他bash scripts。
我正在尝试实现一些东西,它不仅可以捕获父脚本的输出,还可以捕获所有子脚本的输出。我需要同时捕获stdout 和stderr,以便在此日志文件中捕获来自编译等的任何问题。
我知道tee,当然还有普通的stdout 重定向>...但是如果不将这些命令添加到每个脚本的每一行,无论是父脚本还是子脚本,这些似乎都不起作用.这些脚本中有几千行,因此即使使用sed,为每一行添加重定向也是不切实际的。
我看到过一些建议,例如:Redirect stderr and stdout in a Bash script
但是这些需要编辑脚本中的每一行。强迫我的用户安装screen 也是不切实际的。
UPDATE:
忘了提到我希望输出仍然显示在控制台上以及写入日志。脚本需要几个小时才能运行,用户需要知道正在发生的事情......
【问题讨论】:
-
script -c master_script.sh /path/to/some/log/file...