Shell中可以采用while循環來實現需要進行循環的操作。
語法結構如下:
while exp
do
command
done
執行過程:while將測試exp的返回值,如果返回值為true則執行循環體的命令,返回值為false則不執行循環。循環完成后會進入下一次循環之前將再次測試。
如果已知循環次數,可以用計數的方式控制循環,在達到規定的循環次數后退出循環。
示例:
#同時計算1到100和以及1到100的奇數和
#腳本內容如下:
sum1=0
sum2=0
i=1
j=1
while [[ "$i" -le "100" ]]
do
let "sum1+=i"
let "j=i%2"
if [[ $j -ne 0 ]];then
let "sum\+=i"
fi
done
echo "$sum1"
echo "$sum2"
輸出結果:
5050
2500
示例2使用while命令按行讀取文件(實用)
cat data.txt
內容如下:
小明 男 30
小張 男 25
小麗 女 28
#腳本內容如下:
#!/bin/bash
while read Line
do
Name=`echo $Line' | awk '{print $1}'`
Sex=`echo $Line' | awk '{print $2}'`
Age=`echo $Line' | awk '{print $3}'`
echo "我的名字是 $Name ,性別 $Sex 年齡 $Age "
done < data.txt
或者
#!/bin/bash
cat data.txt | while read Line
do
Name=`echo $Line' | awk '{print $1}'`
Sex=`echo $Line' | awk '{print $2}'`
Age=`echo $Line' | awk '{print $3}'`
echo "我的名字是 $Name ,性別 $Sex 年齡 $Age "
done
輸出結果:
我的名字是小明,性別男,年齡30
我的名字是小張,性別男,年齡25
我的名字是小麗,性別女,年齡28