2012-12-06 33 views
0

我在编写shell脚本时经常遇到的令人讨厌的问题是,echo语句的输出在之后显示之后的echo命令的输出。如何序列化bash脚本中的echo'd和错误输出

例如:

echo "step 1 -" 
./step1 

echo "step 2 -" 
./step2 

echo "step 3 -" 
./step3 

输出看起来像这样:

step1 output 
step2 output 
step3 output 
step 1 - 
step 2 - 
step 3 - 

这违背那些回波陈述的目的。有没有任何合理的简单/方便的方法来解决这个问题?

回答

1

将stderr从命令重定向到stdout,以便输出序列化。

./step1 2>&1 
+0

有人提出了一个标题编辑,在近两年后再次引起了我的注意。我很确定我没有接受这个答案,因为这些步骤的输出不会变态,所有这些都是stdout。但是现在我不明白这可能是怎么回事。我应该评论一下,并发布了一些我认为以某种实际测试代码及其输出形式出现的证据。 – Shavais