我正在使用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