shell中的循環語法
阿新 • • 發佈:2017-10-17
表達式 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中的循環語法