【发布时间】:2017-09-30 00:57:08
【问题描述】:
我正在尝试将所有stdout 和stderr 都输出到控制台和文件。我知道 ./script | tee somefile ,但这对我不起作用。我希望它自动完成,而不需要我从控制台进行管道传输。我试过了
#!/bin/sh
exec 2>&1 | tee somefile
echo "..."
但这没有用。什么是正确的解决方案?
【问题讨论】:
-
@soft87:我知道。我提到过,我不想从控制台通过管道传输它,就像那篇文章中描述的那样,我希望它总是这样做。所以即使我运行
./somescript,我也会得到文件和控制台输出 -
您是要对您运行的所有 命令执行此操作,还是仅对一个特定脚本执行此操作。如果是前者,要么运行
diary,要么在后台运行 tee 从管道读取数据并将你的 shell 的 io 流重定向到该管道。如果是后者,只需在脚本中调用 tee。 -
@WilliamPursell:所有命令。我可能有多个
echo命令,我不想每个都用管道传输
标签: linux bash shell scripting