除了STDOUT之外,还有什么方法可以将程序的输出发送到另一个程序吗?

时间:2016-02-29 18:07:47

标签: bash

除了STDOUT之外,我想将程序的输出传递给另一个程序。我现在这样做的方法是tee输出到一个临时文件然后我删除但有兴趣了解更好的方法,我不必创建临时文件。这是我的代码,显示我现在正在做的事情:

random=`echo $RANDOM`
filename='/tmp/'$random
foo | tee $filename
cat $filename | bar
rm $filename

以上foobar是我的计划。我想要的是将foo的输出传递给bar,同时让foo将其输出显示给STDOUT。如果我这样做:

foo | bar

STDOUT的输出丢失。

2 个答案:

答案 0 :(得分:4)

您可以使用process substitution

foo | tee >(bar)

>(…)语法用于将写入“this file”的字节并将其提供给内部进程

答案 1 :(得分:0)

foo可以包含:

Message = $message ./bar.sh

栏可以包含:

echo I received the \"$message"\