我有一个变量如何在bash中将变量的值传递给管道?
THING="echo '3'; echo '5'; echo '4'; echo '3';"
,我想把它推到像管道:
THING2=$({ $THING } | /peep.exe)
我该怎么做呢?当我尝试第一个时,它给了我一些错误,但是当我尝试它时:
THING2=$({ echo '3'; echo '5'; echo '4'; echo '3'; } | ./peep.exe)
它工作正常。
我有一个变量如何在bash中将变量的值传递给管道?
THING="echo '3'; echo '5'; echo '4'; echo '3';"
,我想把它推到像管道:
THING2=$({ $THING } | /peep.exe)
我该怎么做呢?当我尝试第一个时,它给了我一些错误,但是当我尝试它时:
THING2=$({ echo '3'; echo '5'; echo '4'; echo '3'; } | ./peep.exe)
它工作正常。
不要使用变量代码;使用功能。
thing() {
echo '3'
echo '5'
echo '4'
echo '3'
}
thing2=$(thing | /peep.exe)
如果你正打算做的是通过文本字符串“回声‘3’......”等,以在管道中的下一个应用程序,那么这段代码就足够了。
如果您打算只传递3,5,4,3个数字,那么@Chepner的回复将会执行。
希望这对你有好处。
THING="echo '3'; echo '5'; echo '4'; echo '3';"
echo "$THING"
THING2=$(echo "$THING" | grep "3")
echo "$THING2"
问题在于你的第一个'echo'处理行'3'的其余部分;回声'5';回声'4'; echo'3';“'作为它的参数,所以不让shell将它们解释为随后的命令。 – GavinBrelstaff
阅读[Bash FAQ 050](http://mywiki.wooledge.org/BashFAQ/050)。 – chepner