我有一個變量如何在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