我可以在Linux上配置bash,将所有stdout和stderr的副本写入常规文件,而不必为每个命令指定重定向吗?
谢谢, 肯特
答案 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也支持日志记录。