我成功地将错误消息重定向到以下过程中的文本文件:
$ ls + 2>err.txt
$ cat err.txt
ls: cannot access +: No such file or directory
但是当我尝试使用echo命令尝试相同的进程时,它会显示不同的输出,并且无法将错误消息重定向到文本文件。
$ echo )hey 2>err.txt
bash: syntax error near unexpected token `)'
答案 0 :(得分:3)
在第一个示例中,ls
命令生成写入err.txt
的错误消息。
在第二个命令中,您希望发生以下情况:
bash
打开err.txt
标准错误echo
echo
尝试输出)hey
echo
遇到错误err.txt
。但是,bash
永远不会超过第一行,所以2到5都不会发生。相反,shell立即停止处理该行并将错误消息打印到其自己的标准错误。