【发布时间】:2012-10-14 00:31:59
【问题描述】:
如何在 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
【问题讨论】:
-
不可能。您可以将
&放在()中以作为较少任务的背景,但是父脚本不会喜欢那样,只是跳过一些事情,或者仍然等待子进程完成,然后再将控制权返回给脚本并分配返回值。 bash 基本上是单线程的。 -
谢谢你,@Mark。这是我的想法,但我不想假设。
-
总有可能使用临时文件。
-
感谢@RudolfMühlbauer 的建议。
标签: bash multithreading shell unix scripting