Ale*_*xis 0 shell io-redirection stderr
我有一个命令:mywritercmd -f /tmp/test 2>&1 > log.txt我在 bash 终端中运行,命令返回error: could not open output file "/tmp/test": Permission denied
然而,此错误消息并未写入log.txt文件中,它保持为空......
我猜想这条消息应该发送到 stderr,然后发送到文件中,但不知何故它没有。
排序会导致差异。命令行从左到右进行评估。当它到达 时2>&1,指令是将 stderr 传递到 stdout 所在的地方。目前,该> log.txt部件尚未进行评估。结果,stderr 保持默认状态,即输出到终端。
mywritercmd -f /tmp/test > log.txt 2>&1将导致您想要的行为,并导致错误消息写入 log.txt 文件。