exec 1>>${LOG_FILE}
exec 2>>${LOG_FILE}
env文件在每个脚本开始执行时被执行。由于env文件中的上述代码,所有可能是用户输出或错误的控制台输出直接输出到日志文件中,这正是我所需要的。
但有一些我想要在控制台和日志文件中显示的选择性用户输出。但因为上面的代码,我不能这样做。
我知道如果我删除上述代码,我可以得到这种情况下想要的结果,但我必须手动将所有其他输出写入日志文件,这不是一项容易的任务。
是否有一种方法可以在不删除上述代码的情况下在控制台和日志文件中获取输出?
/dev/fd/3
是一个文件名,它指的是“当前打开的fd 3”,因此,tee /dev/fd/3
将其stdin接收到的任何内容写入fd 1和fd 3(即/dev/fd/3
文件)。Fd 1连接到日志文件,fd 3连接到控制台。 - Ian Robertsecho "blah" | tee file1.txt | tee file2.txt >/dev/null
这样就可以把“blah”写入file1.txt和file2.txt,但不会在控制台输出。 - Melroy van den Bergtee
,然后写入终端),而不是直接传输到终端,并调整它们的输出以匹配。 - Ian Roberts