2012-03-14 205 views
12

是否有可能在bash腳本中有一個awk命令將值返回給bash變量,即,如果我的awk腳本執行某些算術運算,我可以將這些答案存儲在變量中,所以它們可以在bash腳本中訪問。如果可能的話,如何區分多個返回變量。謝謝。AWK:返回shell腳本的值

回答

15

不可以。您可以使用exit返回錯誤代碼,但通常不能從子流程修改shell環境。

您還可以,當然,打印AWK想要的內容並把它變成變量在bash使用read

read a b c <<< $(echo "foo" | awk '{ print $1; print $1; print $1 }') 

現在$a$b$c都是「富」。請注意,您必須使用<<<$()語法來使讀取工作。如果您使用任何類型的管道,則也會創建一個子進程,並且在管道完成執行時環境會創建變量。

+0

怎麼樣?你能舉個例子嗎?謝謝 – 2012-03-14 18:51:37

+0

@ShuvoShams:我加了一個,希望它有幫助。 – 2012-03-14 18:57:46

+0

@EduardoIvanec - 修改父進程的環境(變量)非常困難,以至於它可能被宣佈爲「幾乎不可能」。 – 2012-03-14 19:43:22