12.3、bash腳本循環語句
順序執行
選擇執行:if、case
循環執行:for、while、until
2、for循環:
格式:
for VAR in list;do
循環體
done
註釋:VAR是變量,list是循環列表;
list的生成方式:
直接給出 //如:1 2 3 4
{start..end} //註意是兩個點,內建列表方式
seq [start [increment]] last
seq 10
seq 5 10
seq 2 2 10 //步長為2的整數列表
返回命令的列表
glob
變量引用:如$@,$*
3、while循環:
格式:
while CONDITION;do
循環體
循環控制變量修正表達式
done
註釋:CONDITION為條件表達式
4、while條件介紹:
進入條件:CONDITION測試條件為真時進入循環
退出條件:CONDITION測試條件為假時退出循環
while循環示例:
求100以內所有正整數之和
方法一:
[root@localhost ~]# cat sum_100
#!/bin/bash
sum=0
for i in {1..100};do
sum=$[$sum+$i]
done
echo $sum
[root@localhost ~]#
方法二:
[root@localhost ~]# cat while_sum_100
#!/bin/bash
declare sum=0
declare i=1
while [ $i -le 100 ];do
sum=$[$sum+$i]
let i++
done
echo $sum
[root@localhost ~]#
註意:for是列表循環,如果求1到10000的所有正整數之和,那麽會在內存空間為這10000個數分別分配內存空間用來存儲數據,這樣是對內存的一種浪費,基於這種考慮,while可能比for循環性能更好些,因為while循環只有一個變量用來存儲數據。
5、until循環:
格式:
until CONDITION;do
循環體
循環控制變量修正表達式
done
6、until循環條件:
進入條件:CONDITION測試條件為假時,進入循環
退出條件:CONDITION測試條件為真時,退出循環
示例:
until循環示例:
求100以內所有正整數之和
[root@localhost ~]# cat until_sum_100
#!/bin/bash
declare -x sum=0
declare -x i=1
until [ $i -gt 100 ];do
sum=$[$sum+$i]
let i++
done
echo $sum
[root@localhost ~]# bash until_sum_100
5050
註意:#bash -x until_sum_100 //檢查腳本執行過程,-x為調試模式
練習:
1、求100以內所有偶數之和
2、求100以內所有奇數之和
3、創建10個用戶,user101-user110,密碼同用戶名
4、打印九九乘法表
5、打印逆序額九九乘法表
12.3、bash腳本循環語句