【问题标题】:How to serialize echo'd and error output in bash scripts如何在 bash 脚本中序列化 echo 和错误输出
【发布时间】:2012-12-06 02:54:27
【问题描述】:

我在编写 shell 脚本时经常遇到的一个恼人问题是,echo 语句的输出显示在 echo 语句之后的命令输出之后。

例如:

echo "step 1 -"
./step1

echo "step 2 -"
./step2

echo "step 3 -"
./step3

输出如下:

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

这违背了那些 echo 语句的目的。有没有相当简单/方便的方法来解决这个问题?

【问题讨论】:

    标签: bash echo stdout flush


    【解决方案1】:

    将命令中的 stderr 重定向到 stdout,以便对输出进行序列化。

    ./step1 2>&1
    

    【讨论】:

    • 有人建议编辑标题,这让我在将近 2 年后再次注意到这一点。我很确定我没有接受这个答案,因为这些步骤的输出不会进入标准错误,而是全部进入标准输出。但我不明白这怎么可能,现在。我应该发表评论,并以一些实际测试代码及其输出的形式发布一些我所相信的证据。
    猜你喜欢
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 2014-06-07
    • 2021-01-13
    • 2020-01-29
    相关资源
    最近更新 更多