我正在编写一个例程来识别进程是否停止运行,并且一旦目标进程消失就会执行某些操作.
我想出了这段代码(作为我未来代码的测试):
#!/bin/bash
value="aaa"
ls | grep $value
while [ $? = 0 ];
do
sleep 5
ls | grep $value
echo $?
done;
echo DONE
Run Code Online (Sandbox Code Playgroud)
我的问题是,由于某种原因,循环永远不会停止,并在删除文件"aaa"后回显1.
0
0 >>> I delete the file at that point (in another terminal)
1
1
1
1
.
.
.
Run Code Online (Sandbox Code Playgroud)
我删除文件后,我希望输出为"DONE"...
有什么问题?
解:
#!/bin/bash
value="aaa"
ls | grep $value
while [ $? = 0 ];
do
sleep 5
ls | grep $value
done;
echo DONE
Run Code Online (Sandbox Code Playgroud)