这是为了简化我遇到的问题。我定义了一个设置变量的函数,这适用于这种情况:
$ function myfunc { res="ABC" ; }
$ res="XYZ"
$ myfunc
$ echo $res
ABC
所以 res 已经被 myfunc 的调用改变了。但:
$ res="XYZ"
$ myfunc | echo
$ echo $res
XYZ
因此,当 myfunc 是管道的一部分时,值不会改变。即使涉及管道,如何使 myfunc 以我想要的方式工作?
(在真正的脚本中,“myfunc”当然做了一些更精细的事情,管道的另一边有一个 zenity 进度对话而不是一个毫无意义的回声)
谢谢