我正在尝试使用 grep 将命令的输出写入日志文件:
./exeFile dir1/file.conf | grep textError > logTest.txt &
但它没有向日志文件写入任何内容。
如果我使用./exeFile dir1/file.conf > logTest.txt &
上述命令,输出将会被写入日志文件而不会出现任何问题。
我究竟做错了什么?
答案1
如您所知,当您使用时> logTest.txt
,您只是将 stdout 重定向到 logTest.txt,因此您看不到任何内容。
要查看问题所在,请运行 grep 而不将 stdout 重定向到文件:
./exeFile dir1/file.conf | grep textError
首先看看你是否有任何输出需要重定向,也许你的 grep 根本没有任何结果。
因此首先确保您的 grep 正常工作,然后重定向输出。
在第二个命令中,您正在重定向所有输出并且没有过滤任何内容,这就是第二个命令有效的原因。