04 shell程式設計之迴圈語句

彈指流沙間發表於2018-06-10

Shell程式設計之迴圈語句

學習目標:

掌握for迴圈語句程式設計

掌握while迴圈語句程式設計

 

目錄結構:

 

 

 

For迴圈語句

l  讀取不同的變數值,以逐個執行同一組命令

l  For語句結構

for 變數名 in 取值列表

do

        命令序列

done

l  for執行原理

for 變數=取值1,do命令序列。取值2,取值3…取值n,分別do。所有取值都執行完之後,done結束迴圈。

l  根據IP地址檢查主機狀態

Ip地址存放在ip.txt檔案中

每行一個

使用ping命令檢測各主機的聯通性

l  根據ip地址檢查主機狀態指令碼

[root@poll ~]# vi ip.txt

192.168.0.8 127.0.0.1

192.168.0.9

192.168.0.10

192.168.0.11

[root@poll ~]# vi chkhost.sh

#!/bin/bash

#this is chkhosts

hlist=$(cat /root/ip.txt)

for IP in $hlist

do

        ping -c 3 -i 0.2 -W 1 $IP &>/dev/null

        if [ $? -eq 0 ] ;then

                echo "host $IP is up"

        else

                echo "host $IP is down"

        fi

done

[root@poll ~]# sh chkhost.sh

host 192.168.0.8 is up

host 127.0.0.1 is up

host 192.168.0.9 is down

host 192.168.0.10 is down

host 192.168.0.11 is down

 

自制累加小指令碼從1加到100

[root@poll ~]# seq -s " " 100 >>num.txt

[root@poll ~]# cat num.txt

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

[root@poll ~]# vi add.sh

#!/bin/bash

#description : 1 add 2 add 3 add ... add 100

a=$(cat /root/num.txt)

c=0

for b in $a

do     

        i=$b

        c=$(($i+$c))

done

echo $c

[root@poll ~]# sh add.sh

5050

While迴圈語句

l  重複測試某個條件,只要條件成立則反覆執行

l  while 條件測試操作

do

        命令序列

done

l  while語句執行原理

while條件測試操作,條件成立,do命令序列。繼續判斷條件,成立就一直執行do命令序列。不成立就done結束迴圈。

 

l  批量新增使用者

使用者以stu開頭,按數字順序進行編號

一共新增20個使用者,即stu1,stu2,…,stu20

初始密碼均設為123123

 

例項

[root@poll ~]# vi useadd.sh

#!/bin/bash

#一共新增20個使用者,即stu1,stu2,…,stu20

#初始密碼均設為123123

perfix=stu

i=1

while [ $i -le 20 ]

do

        useradd $perfix$i

        echo "123123"|passwd --stdin ${perfix}$1 &>/dev/null

        i=$(($i+1))

done

 

相關文章