如何将shell脚本中所有内容的标准输出重定向到日志文件?

时间:2012-11-06 07:48:53

标签: shell io-redirection redirectstandardoutput

让我们考虑一下shell脚本中有很多系统命令,每个命令都会将一些内容返回给stdout或stderr。

有没有办法将shell脚本生成的所有stdout或stderr重定向到日志文件,而不是单独为每个命令执行重定向?

1 个答案:

答案 0 :(得分:3)

显而易见的解决方案是使用

./scriptfile.sh > foo.log

因此使用脚本文件生成的所有stdout都转到foo.log

然而,我想,你的问题是针对一个解决方案,该解决方案可以通过脚本来实现。 您可以使用exec命令(重新)将文件描述符定向到给定文件(以下代码段中的第2行将stdout重定向到foo.log):

#!/bin/sh
exec 1>>foo.log

echo blue
echo blart