這是試圖簡化我遇到的問題。 我定義它設置一個變量的函數,這個工作在這樣的場景:當它是管道的一部分時,Bash函數失敗
$ function myfunc { res="ABC" ; }
$ res="XYZ"
$ myfunc
$ echo $res
ABC
所以資源已被調用改爲MYFUNC。但是:
$ res="XYZ"
$ myfunc | echo
$ echo $res
XYZ
所以當MYFUNC是管道的價值不會改變的一部分。 即使涉及管道,我如何使myfunc以我所希望的方式工作?
(在真實腳本「MYFUNC」做了更詳細的課程和管道的另一端有一個zenity進步的對話,而不是一個毫無意義的回聲)
感謝
也許'myfunc |在新進程中調用echo',而在第一種情況下,當前調用'myfunc'? – cnicutar 2012-07-10 08:02:38