【发布时间】:2017-01-22 03:05:13
【问题描述】:
我正在运行 Windows 10 并尝试将 test.sh 文件的错误输出保存到文本文件。 所以我创建了 test.sh 文件并在其中写了一个未知命令(即“blablubb”)。
之后我打开终端(cmd.exe),切换到目录并输入test.sh 2>> log.txt。
另一个窗口打开,标题栏中显示“/usr/bin/bash --login -i \test.sh”,显示“bash: blablubb: command not found”,然后立即关闭。
我想保存该输出,因为 bash 窗口只打开一瞬间。每次 google 搜索都会将我带到谈论重定向输出和 Stream2 是 STDERR 的网站,因此我应该使用 test.sh 2>> log.txt 或类似的东西来处理 STDERR 流。
如果我对 test.sh 文件和内容进行相同的尝试:
#!/bin/bash
echo hi there
我在短暂打开的 bash 窗口中得到输出:
bash: #!/bin/bash: No such file or directory
hi there
但是log.txt文件是空的。
如果我在 test.sh 文件中只有 echo hi there,我会在 bash 窗口中得到 bash: echo: command not found。
log.txt 也是空的。
如果我直接在终端输入以下内容,输出会写在log.txt中:
echo hi > log.txt 2>&1
如果我直接在终端输入:
echdo hi > log.txt 2>&1
我得到 'Der Befehl "echdo" ist entweder falsch geschrieben oder konnte nicht gefunden werden。在 log.txt 文件中。
所以我猜在我使用 test.sh 之前,输出的重定向工作正常。 我知道 .sh 文件是来自 unix 世界的东西,问题可能就在那里,但我不知道为什么我不能将 bash 控制台中简要显示的输出重定向到文本文件。
【问题讨论】: