如何在等待另一个命令的变量分配时回显字符串?



我正在使用CLI,其中一些命令可能需要几分钟。运行之后,它每10秒回显一次"正在进行中",直到完成为止。示例命令:

cli run:command --json

示例输出:

in progress
in progress
in progress
{"status":"0", "result":"very good"}

我需要将输出json分配给变量。我是这样做的:

var=$(cli run:command --json)

我的输出很好,它只包含json,没有'in progress'行。但是当我等待命令完成时,我不会每隔10秒看到"正在进行中"的状态。

如何将输出分配给变量,但在等待时仍然看到"正在进行中"状态?

这里有一个方法:启动一个无限循环在后台打印'in progress',当"important"命令完成,终止后台进程:

(while true; do echo in progress; sleep 1; done) & 
bgpid=$!
var=$(sleep 10; echo done)     # this is your long-running command
kill $bgpid

相关内容

  • 没有找到相关文章