1. 程式人生 > >12.3、bash腳本循環語句

12.3、bash腳本循環語句

for while until

1、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腳本循環語句