在后台运行命令并稍后捕获结果(重击)

时间:2018-06-22 09:15:43

标签: bash shell concurrency

类似于这些问题(1) (2),我想在后台进程中运行命令,进行处理,然后再使用该命令的返回值。

我的脚本中有一个函数花费的时间特别长,所以我想在其余的设置之前先运行它,以便在给出该脚本的返回值时减少延迟,但是目前返回值不会被捕获。

我尝试过的事情:

Win64

getLeastLoaded绝对可以在不使用&的情况下工作,所以我确定这是一个并发问题。

谢谢!

1 个答案:

答案 0 :(得分:1)

根据bash manual

  

如果命令被控制操作员&终止,则外壳程序将在子外壳程序中的后台执行该命令。

因此,您的local命令不会影响当前的shell。

我建议这样:

do-something > /some/file &
... ...
wait
var=$( cat /some/file )