0

我有一个简单的 bash 脚本,它执行一个程序并重定向文件中的每个输入并将 stdout 处的每个输出重定向到一个文件中。

当我在没有标准输出重定向的情况下执行它时,它会以正确的顺序在终端中打印我程序的每个 printf。当我对标准输出进行重定向时,它似乎会丢失其中的一些并造成它们的顺序混乱。

#!/bin/bash
./myprog < commands > scriptOUT.txt

其中 myprog 是程序的可执行文件 commands 是一个文件,其中包含该程序执行所需的输入,而 scriptOUT.txt 是要在最后创建的所有标准输出的文件(这根本不会发生)

为什么会这样?有没有办法解决它?

4

1 回答 1

1

你的一些输出是否stderr也会达到stdout?尝试使用>&重定向两者stdoutstderr看看是否有帮助:

#!/bin/bash
./myprog < commands >& scriptOUT.txt
于 2013-04-22T22:11:55.957 回答