概述
在程式語言中,while循環(英語:while loop)是一種控制流程的陳述。利用一個返回結果為布林值(Boolean)的表達式作為循環條件,當這個表達式的返回值為「真」(true)時,則反覆執行循環體內的程式碼;若表達式的返回值為「假」(false),則不再執行循環體內的代碼,繼續執行循環體下面的代碼。
下面用幾個實例來理解下while怎麼去用。
1、while創建定時任務
#!/bin/bash
while true
do
uptime
sleep 0.6
done
結果:
2、計算1-100的和
--bc命令實現
echo `seq -s + 1 100`|bc
--while循環
#!/bin/bash
i=1
while [ "$i" -le 100 ]
do
((b=b+i))
((i++))
done
echo $b
3、手機通訊計費功能
#!/bin/bash
sum=1000
i=15
while [ $sum -ge 15 ]
do
cat<=================
1.發簡訊
2.查餘額
3.帳戶充值
4.退出
=================
EOF
read -p "你要做什麼呢?" Some
case "$Some" in
1)
sum=$((sum-i))
read -p "請輸入發送簡訊的內容:"
read -p "請輸入收信人:"
sleep 0.3
echo "發送成功."
echo "您當前餘額為$sum"
;;
2)
echo "您當前餘額為$sum"
;;
3)
read -p "請輸入你要充值的金額:" ChongZhi
sum=$((sum+ChongZhi))
echo "充值成功,當前餘額為$sum"
;;
4)
exit
;;
*)
echo "輸入有誤!"
exit 2
esac
done
echo "餘額不足,請及時充值!"
4、獲取取文件中的行,單詞和字符
4.1 疊代獲取文件中的每一行
--方法一
while read line;
do
echo $line;
done < file.txt
--方法二
cat file.txt|while read line
do
echo $line
done
--方法三
exec < file.txt
while read line;
do
echo line;
done
4.2 疊代獲取每一個單詞
for word in $line;
do
echo $word;
done
4.3 疊代獲取每一個字符
word=participate
for ((i=0;i<${#word};i++))
do
echo ${word:1:1};
done
4.4 同時獲取取文件中的行,單詞和字符腳本
#!/bin/bash
n=1
while read i
do
echo "第${n}行 $i"
m=1
for x in $i
do
echo "第${m}個單詞 $x"
echo $x|grep -o .
((m++))
done
((n++))
done < $1
大家有空也可以自己測試一下,覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~