1. 程式人生 > >shell中的循環語法

shell中的循環語法

表達式 one then -- 批量 作者 運算 添加用戶 判斷

                               shell中的循環語法

                                              作者:尹正傑

版權聲明:原創作品,謝絕轉載!否則將追究法律責任。

一.for循環 1.語法格式1
1 for 變量 in 值1 值2 值3 ...
2 do
3   源代碼
4 done
2.語法格式2
1 for (( 初始值;循環控制條件;變量變化 ))
2 do
3   源代碼
4 done

3.案例展示一
 1 [[email protected] backup]# more
for1.sh 2 #!/bin/bash 3 #@author :yinzhengjie 4 #blog:http://www.cnblogs.com/yinzhengjie 5 #EMAIL:[email protected] 6 7 for i in 1 2 3 8 do 9 echo "第$i次循環!" 10 done 11 [[email protected] backup]#

4.案例展示二(求和運算)
 1 [[email protected] backup]# more for3.sh 
 2 #!/bin/bash
3 #@author :yinzhengjie 4 #blog:http://www.cnblogs.com/yinzhengjie 5 #EMAIL:[email protected].com 6 7 sum=0 8 read -t 30 -p "Please enter the start number>>>" StartNumber 9 read -t 30 -p "Please enter an end number>>>" EndNumber 10 11 for ((i=$StartNumber;i<=$EndNumber;i=i+1
)) 12 do 13 sum=$(($sum+$i)) 14 done 15 16 echo "從$StartNumber加到$EndNumber的總和是:$sum" 17 [[email protected] backup]#
5.案例展示三(批量添加用戶)
 1 [[email protected] backup]# more useradd.sh 
 2 #!/bin/bash
 3 #@author :yinzhengjie
 4 #blog:http://www.cnblogs.com/yinzhengjie
 5 #EMAIL:[email protected]
 6 
 7 
 8 read -p "Please input username(default "yinzhengjie"):" -t 30 username
 9 read -p "Please input the number of users:" -t 30 UsersNumber
10 read -p "Please input the password of users:" -t 30 password
11 
12 if [ -z $username ]
13     then
14         username=yinzhengjie
15 fi
16 
17 
18 if [ ! -z "$username" -a ! -z "$UsersNumber" -a ! -z "$password" ]
19     then
20         y=$(echo $UsersNumber|sed s/[0-9]//g)
21         if [ -z "$y" ]
22             then
23                 for (( i=1;i<=$UsersNumber;i=i+1 ))
24                     do
25                         useradd "$username$i" &>/dev/null
26                         echo $password | passwd --stdin "$username$i" &> /dev/null
27                 done
28        fi
29 fi
30 
31 [[email protected] backup]# 

二.while循環   while循環是不定循環,也稱做條件循環。只要條件判斷式成立,循環就會一直繼續。只要條件判斷式不成立,循環才會停止。這就和for的固定循環不太一樣了。 1.語法格式
1 while [ 條件判斷式 ]
2 do
3     源代碼
4 done

2.案例展示
 1 [[email protected] shell]# more while.sh 
 2 #!/bin/bash
 3 #@author :yinzhengjie
 4 #blog:http://www.cnblogs.com/yinzhengjie
 5 #EMAIL:[email protected]om
 6 
 7 sum=0
 8 read -t 30 -p "Please enter the start number>>>" StartNumber
 9 read -t 30 -p "Please enter an end number>>>" EndNumber
10 
11 while [ $StartNumber -le $EndNumber ]
12     do
13         sum=$(( $sum + $StartNumber ))
14         StartNumber=$(( $StartNumber + 1 ))
15 done
16 
17 StartNumber=$(( $StartNumber - $EndNumber ))
18 
19 echo "從$StartNumber加到$EndNumber的總和是:$sum"
20 [[email protected] shell]# 

三.until循環   until循環,和while循環相反,until循環時,只要條件判斷式不成立則進行循環,並執行循環程序。一旦循環條件成立,則終止循環。 1.語法格式
1 until [ 條件表達式 ]
2 do
3     源代碼
4 done

2.案例展示
 1 [[email protected] shell]# more until.sh 
 2 #!/bin/bash
 3 #@author :yinzhengjie
 4 #blog:http://www.cnblogs.com/yinzhengjie
 5 #EMAIL:[email protected]
 6 
 7 sum=0
 8 read -t 30 -p "Please enter the start number>>>" StartNumber
 9 read -t 30 -p "Please enter an end number>>>" EndNumber
10 
11 until [ $StartNumber -gt $EndNumber ]
12     do
13         sum=$(( $sum + $StartNumber ))
14         StartNumber=$(( $StartNumber + 1 ))
15 done
16 
17 StartNumber=$(( $StartNumber - $EndNumber ))
18 
19 echo "從$StartNumber加到$EndNumber的總和是:$sum"
20 [[email protected] shell]# 

shell中的循環語法