我正在尝试将所有stdout
和stderr
输出到控制台和文件。我知道./script | tee somefile
,但这对我不起作用。我想让它自动完成,而不是我从控制台管道。我试过了
#!/bin/sh
exec 2>&1 | tee somefile
echo "..."
但这不起作用。什么是正确的解决方案?
答案 0 :(得分:1)
经典的解决方案是在脚本的顶部添加类似的内容:
test -z "$REXECED" && { REXECED=1 exec $0 "$@" 2>&1 | tee -a somefile; exit; }
您可能也喜欢:
test -t 1 && { exec $0 "$@" 2>&1 | tee -a somefile; exit; }