【发布时间】:2013-04-22 22:10:06
【问题描述】:
我有一个简单的 bash 脚本,它执行一个程序并重定向来自文件的每个输入并将标准输出的每个输出重定向到一个文件中。
当我在没有标准输出重定向的情况下执行它时,它会以正确的顺序在终端中打印我程序的每个 printf。当我将标准输出重定向时,它似乎会丢失其中的一些并造成它们的顺序混乱。
#!/bin/bash
./myprog < commands > scriptOUT.txt
其中 myprog 是程序的可执行文件 commands 是一个文件,其中包含该程序执行所需的输入,而 scriptOUT.txt 是将要创建的文件,最后包含所有标准输出(这根本不会发生)
为什么会这样?有没有办法解决它?
【问题讨论】:
-
会不会是其中一些被发送到 STDERR 而不是 STDOUT?
-
./myprog使用线程吗? -
它在 STDERR 中只打印一次。不,它不使用线程。