歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux編程中的while循環問題

Linux編程中的while循環問題

日期:2017/3/3 16:13:14   编辑:關於Linux

我們先要理解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

 

Copyright © Linux教程網 All Rights Reserved