我正在尝试将所有 stdout
和 stderr
输出到控制台和文件。我知道 ./script | tee somefile
,但这对我不起作用。我希望它自动执行,而无需我从控制台通过管道传输它。我试过了
#!/bin/sh
exec 2>&1 | tee somefile
echo "..."
但这没有用。什么是正确的解决方案?
最佳答案
经典的解决方案是在脚本的顶部添加类似这样的内容:
test -z "$REXECED" && { REXECED=1 exec $0 "$@" 2>&1 | tee -a somefile; exit; }
您可能还喜欢:
test -t 1 && { exec $0 "$@" 2>&1 | tee -a somefile; exit; }
关于linux - Bash 将所有标准输出都输出到控制台和文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46498540/