Linux编程中的while循环问题
| 我们先要理解while循环的意义,使用while循环的目的就是多次循环! while循环是根据while关键字后面指定的条件决定是否退出的循环的。 如果你希望执行一次命令就退出,那么无需用while循环,使用while就表示你需要多次循环,好了,我猜测下,你的问题是希望true的条件下,如何退出循环吧? 如果是的话,那么大概有如下几个方法。 1、while后的条件不是为true永远为真,而是指定一个条件,那么条件不满足就退出了。 例子如下: i=0 while ((i<10)) do echo $i ((i++)) sleep 1 done 提示: 1)上述脚本执行10次循环,,即10秒后i就不会小于10了,因此循环自动退出。 2)上述脚本你可以直接命令行拷贝执行看效果。 2、还可以利用第一部分SHELL视频里的特殊变量$$来记录脚本进程的ID到固定文件里,希望退出时就读取文件里的脚本进程ID kill杀掉这个ID即可。例子如下: [root@C58 ~]# cat w.sh #!/bin/sh i=0 echo "$$" >/var/run/shell.pid while true do echo $i ((i++)) sleep 1 [ $i -eq 3 ] && kill `cat /var/run/shell.pid` done [root@C58 ~]# sh w.sh 0 1 2 Terminated 提示:这里设置变量等于3就杀掉脚本进程。 3、其他方法 可以手动查找PID kill PIDNO. 或者查找进程名 pkill PROCESSNAME 当然还有killall等命令可以使用。 另,有问题可以到答疑区发问。 本文出自 “老男孩linux运维” 博客,请务必保留此出处http://oldboy.blog.51cto.com/2561410/1294926 查看本栏目更多精彩内容:http://www.bianceng.cn/OS/Linux/ (编辑:佛山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! | 

