在进程为 运行 时执行命令,并在进程使用 bash 结束后结束

Execute command while process is running and end once process ends using bash

我正在尝试创建一个将打印“.”的 while 循环。而 shell 脚本进程是 运行 并在进程完成时停止打印。我的代码继续打印“。” launch.sh 完成后。

sh launch.sh & PIDIOS=$!

dot_function() {
running=$(ps aux | grep launch.sh | wc -l)
while [ $running -ge 1 ]; do
   if [ $running -lt 1 ]; then
      break
   elif [ $running -ge 1 ];
      printf "."
      sleep 1
   fi
done
} 
dot_function & PIDMIX=$

使用kill -0怎么样?

dotwait() {
    while kill -0 "" 2>/dev/null
    do
        printf .
        sleep 1
    done
    echo
}

sh launch.sh & dotwait "$!"