用Shell編寫for循環和while循環案例
??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循環案例