これは、私が抱えている問題を単純化する試みです。変数を設定する関数を定義すると、これは次のシナリオで機能します。
$ function myfunc { res="ABC" ; }
$ res="XYZ"
$ myfunc
$ echo $res
ABC
したがって、res は myfunc の呼び出しによって変更されています。しかし:
$ res="XYZ"
$ myfunc | echo
$ echo $res
XYZ
したがって、myfunc がパイプの一部である場合、値は変更されません。パイプが関係している場合でも、myfunc を希望どおりに動作させるにはどうすればよいですか?
(実際のスクリプトでは、"myfunc" はもちろんより精巧な処理を行い、パイプの反対側には無意味なエコーではなく、zenity 進行ダイアログが表示されます)
ありがとう