2

如何在 BASH 脚本中多线程创建变量?例如,如果一个脚本包含以下两行,那么它们如何同时执行?

 export BOTSUBSTITUTIONS=$(less --buffers=-1 ./conf/substitutions.xml)
 export BOTPROPERTIES=$(less --buffers=-1 ./conf/startup.xml)

下面的这个例子不起作用。

export BOTSUBSTITUTIONS=$(less --buffers=-1 ./conf/substitutions.xml) &
export BOTPROPERTIES=$(less --buffers=-1 ./conf/startup.xml) &
wait
4

1 回答 1

1

将后台进程的输出重定向到单独的文件,等待后台进程完成,然后将结果返回给您的变量。例子:

less --buffers=-1 ./conf/substitutions.xml >o1& o1=$!
less --buffers=-1 ./conf/startup.xml >o2& o2=$!
wait $o1 $o2
export BOTSUBSTITUTIONS=$(cat o1) ; rm -f o1
export BOTPROPERTIES=$(cat o2); rm -f o2
于 2012-10-17T22:30:03.547 回答