如何将Unix程序的输出(常规或错误)记录到文件中?
答案 0 :(得分:6)
以
./program > file.log 2>&1开头 这会将stdout和stderr重定向到file.log
答案 1 :(得分:1)
像上面这样的答案的重定向是非常标准的,但有时你真的想要在会话中捕获所有。为此,您可以使用'script'命令。
$ script /path/to/output_file [starts a subshell] $ ./program $ exit $ cat /path/to/output_file
脚本的优点是你不需要担心shell语义并知道你正在运行哪个shell等等。缺点是它确实捕获到了终端的所有内容,包括控制代码,删除钥匙等...