Shell腳本之while的使用場景


1.什么是while
while在shell中也是負責循環的語句,和for- -樣。
2.while循環和for循環怎樣選?
因為功能-樣,很多人在學習和工作中的腳本遇到循環到底該使用for還是while呢?
很多人不知道,就會出現有人一-遇循環就使用for、 有人一 遇循環就使用while。 到底選or好還是
while好:
1.知道循環次數的使用for比如一天循環24次;
2.如果不知道要循環多少次,那就用while比如猜數字游戲, 每個人猜對的次數是未知的。
3.while循環基礎語法

#當條件測試成立(條件測試為真),執行循環體
while條件測試
do
循環體
done
4.循環嵌套整數比對,判斷用戶輸入的數值是否大於0 ,如果大於0,則三秒輸出一-次大於。
[root@oldxu ~]# cat while_ number.sh
#!/usr/bin/bash
read -p "請輸入數字: " num
while [ $num -ge 0 ]
do
echo "大於" 
sleep 3
done

5.循環嵌套文件比較,判斷tmp/oldxu文件是否存在,如果不存在則3s輸出一次not found。
存在自動退出。
[root@oldxu ~]# cat while_ file.sh
#!/usr/bin/bash
i=0
while [ ! -d /tmp/o1dxu ]
do
echo "not found /tmp/oldxu"
sleep 3
done
N

6循環嵌套字符比較,判斷用戶輸入的用戶名,如果不是root則一直讓其輸入
read -p "$ (hostname) login; acc
while [ $acc != "root" ]
do
	read -p "$ (hostname) login:" acc
done


  • 注意:#while讀入文件,while默認按行讀入,IFS 調整默認分隔符;
    • for默認按空格讀入文件IFS 調整默認分隔符
#while讀入文件,默認按行讀入,,,for默認按空格讀入文件IFS 調整默認分隔符
while read file
do
	echo $file
	sleep 2s
done</ etc/ passwd

  • 循環中的一些控制語句
在我們使用循環語句進行循環的過程中,有時候需要在未達到循環結束條件時強制跳出循環,那
么Shel給我們提供了內置方法來實現該功能: exit、break. continue	1.exit ,退出整個程序。
當腳本碰到exit時 ,直接退出,剩余不管有多少代碼都不執行。

[root@oldxu she11]# cat for_ exit.sh
#!/usr/bin/bash
for i in {1..3}
do	echo "123"
	exit		####break. continue	
echo "456"
	done
	echo "Done....."
#執行后的結果
[root@She1l ~]# sh for_ exit.sh
123


# break,結束當前循環,但會執行循環之后的所有的代碼。
# continue 忽略本次循環剩余的所有代碼,直接進行下一次循環,直到循環結束,然后繼續循環之后的代碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM