【问题标题】:Bash: capture the echo of a script in a variableBash:在变量中捕获脚本的回声
【发布时间】:2018-11-23 22:36:05
【问题描述】:

我有script1,它调用script2,其中包含一个回显语句。我希望script1script2 返回的回声发送到命名管道。 有没有办法做到这一点而不必更改 script2 的代码?就像“捕获” echo 语句一样?

脚本1:

...
case ${input_args[0]} in
        SCRIPT2)
            ./SCRIPT2.sh ${input_args[1]};;
...

脚本2:

echo "OK: done!"

【问题讨论】:

    标签: bash echo


    【解决方案1】:

    只需将输出重定向到命名管道:

    ./SCRIPT2.sh ${input_args[1]} >"my_named_pipe"
    

    命名管道在这个意义上就像文件。

    【讨论】:

    • 谢谢 Tamas,我确实喜欢这样,但是代码中的其他问题阻止了它工作。现在工作正常。唯一的问题是,如果在 SCRIPT2 中有多个 echo 语句,它们的打印效果不好:(...任何提示?
    • 那么您想将 SCRIPT2 的输出同时发送到终端和命名管道吗?在这种情况下,您可以像这样使用tee./SCRIPT2.sh ${input_args[1]} | tee "my_named_pipe"
    • 谢谢塔马斯! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-16
    • 2010-10-21
    • 2010-11-21
    • 2020-08-14
    • 1970-01-01
    • 2014-12-09
    • 2021-11-04
    相关资源
    最近更新 更多