我希望获得我执行的所有命令的快照,并在文件中输出(stdout,stderr)以便稍后查看。我经常需要查看它以进行调试。
此链接提供单个命令的输出: How to redirect output to a file and stdout
但是,我不想为每个命令编写它,因为它很耗时。此外,这不会记录我执行的命令。
示例功能:
bash> start-logging tmp.txt
bash> echo "Hi"
Hi
bash> cat 1.txt
Contents of 1.txt
bash> stop-logging
Contents of tmp.txt
bash> echo "Hi"
Hi
bash> cat 1.txt
Contents of 1.txt
理想情况下,我想要上述行为。 任何其他具有一些功能缺失的命令(可能缺少从tmp.txt执行的命令)也会有所帮助。
答案 0 :(得分:1)
您可以使用
$ bash | tee log
开始记录然后
$ ^D
(即#Ctrl-D)
停止记录。
创建一个新的bash会话,该会话将记录,然后在不需要时终止它。
但不幸的是,bash似乎没有将它的提示和命令写入stderr,所以你只能捕获命令输出。