rm this-file-does-not-exist.txt
>>>> rm: cannot remove ‘asdfasf.js’: No such file or directory
# to redirect that error to a file you do this
rm this-file-does-not-exist.txt 2>/tmp/logError.txt
cat /tmp/logError.txt
>>>> rm: cannot remove ‘asdfasf.js’: No such file or directory
# if you want to check if the output contains `ERROR` do this
badcommand | grep "ERROR" 1>/tmp/logError.txt # if greping for "ERROR" was successfull redirect stdout to /tmp/logError.txt
# the 1 is a file descriptor for stdout
2条答案
按热度按时间pcww981p1#
必须使用stderr文件描述符,即2
例如:
如何使用linux邮件命令
ccgok5k52#
如果我理解正确,如果发生错误,您希望在文件中保留整个错误日志(包括可能与错误检测模式不匹配的行)。我不认为有任何方法可以完全通过i/o重定向来实现您想要的。
相反,您可以无条件地将stderr重定向到它自己的文件。然后,作为一个后处理步骤,您可以grep浏览该文件以查看是否出现错误,并且根据结果,可以将该文件邮寄给其他人,也可以将其删除。