1. 程式人生 > >用Shell編寫for循環和while循環案例

用Shell編寫for循環和while循環案例

linux for while

(1)Shell中的單引號和雙引號區別

??A="www.jfedu.net"

??B=‘$A‘

?echo $B

註釋:?

? ? ? ? ? ?把www.jfedu.net賦值給變量A,?把變量A的內容賦值給變量B,打印出變量B的結果,打印出的結果為$A

? ? ? ? ? ?因為變量A是一個弱引用,引用的結果只是一個字符


A="www.jfedu.net"

B="$A"

echo $B

註釋:

? ? ? ? ? ??把www.jfedu.net賦值給變量A,?把變量A的內容賦值給變量B,打印出變量B的結果,打印出的結果為www.jfedu.net

? ? ? ? ? ? 因為變量A是一個強引用,變量B的引用結果是www.jfedu.net,而不是一個字符


(2)for循環語法格式

? ? for? var? in (表達式)

? ? do

????????????語句

? ? done


(3) 用for循環打印1到100

? ? for i? ?in? `seq 1 100`

? ? do

? ? ? ? echo $i

? ? done


?註釋: 單引號和雙引號只適用於變量引用,涉及到計算,不能用單引號和雙引號

??

拓展

? ? ?用for循環打印1到100另外二種寫法

? for? i? ?in? $(seq 1 100)

? do

? ? ?echo $i

? done


? for i? in? `echo? {1..100}`

? do

? ? ?echo $i

? done

?註釋: echo後面不要忘記加空格,不加空格,會報錯


(4) 用for循環讀取文件內容,並打印到屏幕上

?for i? in? `cat list.txt`

?do

? ? ?echo $i

done


(5) 用for循環批量到遠程主機執行命令

? command="$*"

? for? i? ?in? ?`seq 1 100`

? do

? ? ?ssh -l? root? 192.168.1.$i? "$command"

? done


(6)用for循環批量到遠程主機傳輸文件

?files="$*"

? for? i? ?in? `seq 1 100`

?do

? scp -r $files [email protected].$i:/tmp

done


(7)用for循環輸出1到100的和

?j=0

for i? in? `seq 1 100`

do

? ?j=`expr $i+$j`

done

echo $j


(8) while循環格式

? while? (表達式)

? do

? ? ? 語句

?done


(9) 用while循環讀取文件列表內容,並把結果打印在屏幕上

?while read line

?do

? ? ? echo $line

?done<list.txt


(10) 用while循環,每隔一秒在屏幕上輸出hello? word

? while? sleep 1

? do

? ? ? echo "hello word"

? done


(11) 用while循環,打印1到100

? i=0

?while(i<=100)

?do

? ? ?echo $i

? ? ? i=`expr $i+1`

?done


(12) while循環打印1到100的和

? j=0

? i=1

? while(i<=100)

? do

? ? ? ?j=`expr $i+$j`

? ? ? ?((i++))

?done

? echo $j? ? ??

?


用Shell編寫for循環和while循環案例