Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
让我们考虑一下 shell 脚本中有许多系统命令,每个命令都将一些内容返回到 stdout 或 stderr。
有没有办法将所有从 shell 脚本生成的 stdout 或 stderr 重定向到日志文件,而不是分别对每个命令执行重定向?
显然简单的解决方案是使用
./scriptfile.sh > foo.log
因此使用脚本文件生成的所有标准输出都转到 foo.log
但是,我想您的问题是针对使用脚本的解决方案。您可以使用 exec 命令(重新)将文件描述符定向到给定文件(以下代码段中的第 2 行会将 stdout 重定向到 foo.log):
#!/bin/sh exec 1>>foo.log echo blue echo blart