我一直在使用Bash等待PID不再存在.我试过了
#!/bin/bash
while [ kill -0 PID > /dev/null 2>&1 ]; do
//code to kill process
done
//code to execute after process is dead
Run Code Online (Sandbox Code Playgroud)
以及
#!/bin/bash
until [ ! kill -0 PID > /dev/null 2>&1 ]; do
//code to kill process
done
//code to execute after process is dead
Run Code Online (Sandbox Code Playgroud)
这两个示例都无法工作,或者在进程结束后继续循环.我做错了什么?
Jon*_*ler 17
你应该只是做:
while kill -0 $PID >/dev/null 2>&1
do
# Code to kill process
done
Run Code Online (Sandbox Code Playgroud)
循环条件测试最后一个命令的退出状态 - 在这种情况下,kill.
'last'的意义在于你可以写:
while sleep 1
echo Testing again
kill -0 $PID >/dev/null 2>&1
do
# Code to kill process
done
Run Code Online (Sandbox Code Playgroud)
这也测试kill(和kill单独)的退出状态.