shell程式設計 迴圈語句

2021-05-17 11:36:58 字數 2561 閱讀 7588

***********************************==while語句****************************************

while語句格式

while   表示式

do    

command

command

done 

while 和 if 的條件表示式完全相同,也是[ ] 或commad或test

while 表示式

if 表示式

表示式值為0,則迴圈繼續

表示式值為0,then

表示式值為非0,則迴圈停止

表示式值為非0,else

最基本的i++ 條件型迴圈

i=1while [ $i -lt 10 ]

dosed -n "$p" 111.txt

i=$(($i+1))       必須雙層括號

done   

命令型while 迴圈

while command      命令返回值0(成功執行),迴圈繼續

pause函式,輸入任何值繼續,輸入q退出程式

pause()

{while echo "press to proceed or type q to quit:"

doread cmd

case $cmd in

[qq]) exit 1;;       exit直接退到底,退出shell script 

"") break;;          break跳出迴圈

*) continue;;        continue跳到迴圈底,重新開始新迴圈迴圈

esac

done

while echo …        此命令沒有失敗的可能,所以必須有break,return,exit之類的指令

while 關鍵字

break———— 用來跳出迴圈

continue—— 用來不執行餘下的部分,直接跳到下乙個迴圈

****************************************===for語句***********************************

for語句格式

for   表示式

do    

command

command

done 

i++,n=n+1 必須用雙層括號  $(($num+1)) ,單層括號$($num+1)不管用

[root@mac-home home]# vi test.sh

:echo "input num:"

read num

echo "input is $num"

num=$($num+1)

echo "new num is $num"

[root@mac-home home]# sh test.sh

input num:

3input is 3

test.sh: line 6: 3+1: command not found

new num is

[root@mac-home home]# vi test.sh

:echo "input num:"

read num

echo "input is $num"

num=$(($num+1))  

echo "new num is $num"

[root@mac-home home]# sh test.sh

input num:

3input is 3

new num is 4

(( ))與[ ]作用完全相同

echo input:

read i

i=$(($i+1))

echo $i  

echo input:

read i

i=$[$i+1]

echo $i

[macg@localhost ~]$ sh ttt.sh

input:67

[macg@localhost ~]$ sh ttt.sh

input:67

再證明(( ))與[ ]完全相同--------if (( ))

if (( $# != 3 )); then

echo "usage: $0 host user passwd"

exit 1

fiif [ $# != 3 ]; then

echo "usage: $0 host user passwd"

exit 1

fi[macg@localhost ~]$ sh ttt.sh 1 2

usage: ttt.sh host user passwd

[macg@localhost ~]$ sh ttt.sh 1 2

usage: ttt.sh host user passwd

$foo=$(($foo+1))                  # 執行的時候這個地方報錯

給變數賦值,左邊的變數不需要加 $ 符號,

foo=$(($foo+1)) 

賦值=,read,export都不需要加變數$

shell程式設計 迴圈語句

while語句 while語句格式 while 表示式 do command command done while 和 if 的條件表示式完全相同,也是 或commad或test while 表示式 if 表示式 表示式值為0,則迴圈繼續 表示式值為0,then 表示式值為非0,則迴圈停止 表示式值...

Shell 程式設計迴圈語句

我們可以用 for 結構的迴圈來處理一組值,這組值可以是任意字串的集合。for variable in values do statement donefor foo in aa bb cc do echo foo done exit 0輸出結果是 aabb ccfor 迴圈特別適合對一系列字串進行...

shell程式設計 迴圈語句

for迴圈語句有兩種格式,分別如下 for var in list do commands donelist代表要迴圈的值,在每次迴圈的時候,會把當前的值賦值給var 變數名而已,隨意定 這樣在迴圈體中就可以直接通過 var獲取當前值了。list裡面的值預設以空格分割,可以通過環境變數ifs控制 例...