【发布时间】:2022-10-25 15:41:29
【问题描述】:
我正在运行一个可以查看进度条的 shell 测试程序,但是当我运行它时,我不断收到一元错误。 kill -0 是一种在 shell 中杀死子进程的方法吗? 还是有另一种方法来测试我的进程是否已经死亡? 这是我的代码来运行进度条,直到我的命令结束:
#!/bin/sh
# test my progress bar
spin[0]="-"
spin[1]="\\"
spin[2]="|"
spin[3]="/"
sleep 10 2>/dev/null & # run as background process
pid=$! # grab process id
echo -n "[sleeping] ${spin[0]}"
while [ kill -0 $pid ] # wait for process to end
do
for i in "${spin[@]}"
do
echo -ne "\b$i"
sleep 0.1
done
done
enter code here
【问题讨论】:
-
我发现如果你在后台运行微调器并在前台运行进程,这种事情会更干净。当进程终止时,您将杀死微调器。
标签: shell sh unary-operator