运行 while 循环,直到后台进程完成其工作

Jee*_*tel 5 linux shell

在linux shell脚本中我有

vlc /some/file/path.mkv &
wait
Run Code Online (Sandbox Code Playgroud)

现在直到我的后台进程返回wait调用将被阻止。但在这里我希望在后台进程返回之前我想执行一个循环并在其中连续打印一些数据。因此,当我的后台进程返回/退出时,我需要打破该循环。

如何在 shell 脚本中做到这一点?

Sri*_*niV 9

看看这是否适合你

vlc /some/file/path.mkv &
while [[ -n $(jobs -r) ]]; do echo -n "some data"; sleep 1; done
Run Code Online (Sandbox Code Playgroud)

jobs -r检查正在运行的进程,并打印一些内容,当您的 vlc 进程完成时,脚本就会停止。