如何在bash中将变量的值传递给管道?

时间:2017-03-23 14:56:15

标签: bash unix

我有一个变量

THING="echo '3'; echo '5'; echo '4'; echo '3';"

我希望将其推入如下的管道:

THING2=$( { $THING } | /peep.exe )

我该怎么做?当我尝试顶部时它会给我一些错误,但当我尝试它时:

THING2=$( { echo '3'; echo '5'; echo '4'; echo '3'; } | ./peep.exe )

它工作正常。

2 个答案:

答案 0 :(得分:2)

不要在代码中使用变量;使用功能。

thing () {
    echo '3'
    echo '5'
    echo '4'
    echo '3'
}

thing2=$( thing | /peep.exe )

答案 1 :(得分:0)

如果你打算做的是传递文字字符串" echo' 3' ...."等到管道中的下一个应用程序,那么这段代码就足够了。

如果您打算只传递3,5,4,3号码,那么@Chepner会回复。

希望这对你有好处。

THING="echo '3'; echo '5'; echo '4'; echo '3';"
echo "$THING"

THING2=$( echo "$THING" | grep "3" )
echo  "$THING2"