可以stdout,stderr总是发球到普通文件?

时间:2010-08-01 14:50:58

标签: linux bash shell

我可以在Linux上配置bash,将所有stdout和stderr的副本写入常规文件,而不必为每个命令指定重定向吗?

谢谢, 肯特

3 个答案:

答案 0 :(得分:4)

您可以使用script创建shell会话日志

答案 1 :(得分:1)

如果您正在编写脚本,我建议您编写一个shell函数并重定向其输出。您不必重定向该函数的每个命令。无论如何,我几乎没有看到交互式shell中的重定向有任何意义。

答案 2 :(得分:1)

exec命令,如果没有给出执行命令,将把它的重定向应用到当前shell。然而,在我的测试中,这似乎对管道效果不佳。我建议使用子shell,你可以正常重定向。

(
   echo hello
   echo hello err >&2
) 2>&1 | tee logfile.txt

如果您只需要成绩单,而不是连续发球台,exec >& logfile可能会有效。

此外,传统技巧是使用管道传输的远程登录工具(ssh或telnet)来创建交互式会话的日志。 screen也支持日志记录。