我在以下过程中成功地将错误消息重定向到文本文件:
$ 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 `)'
最佳答案
在您的第一个示例中,是 ls
命令生成了写入 err.txt
的错误消息。
在您的第二个命令中,您期望发生以下情况:
- 该行解析成功
bash
打开err.txt
为echo
的标准错误
echo
尝试输出)hey
echo
遇到错误- 错误信息写入
err.txt
。
但是,bash
永远不会超过第一行,所以 2 到 5 都不会发生。相反,shell 会立即停止处理该行并将错误消息打印到它的自己的标准错误。
关于linux - 我对以下示例的重定向操作持怀疑态度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36524204/