shell程式設計 迴圈結構

2021-05-27 07:20:52 字數 2539 閱讀 8420

***********************************==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程式設計 迴圈結構

1 for迴圈語句 for variable in dostatement1 statament2 done 使用省略號的寫法來表示某個範圍 設定步長 for variable in dostatement1 let sum i done 使用字串作為列表元素,可以省略外面的大括號 for i in...

shell程式設計之迴圈結構

與c語言類似,shell指令碼語言同樣有迴圈語句 1.for語句 2.while語句。下面講解一下這兩個迴圈結構的表達並舉例說明。1.for語句 基本語法 for var in 單次表 do命令列 done 同樣也有一種和c語言相類似的形式 for i 0 i 10 i do命令列 done 例子 ...

shell程式設計 for迴圈

列表迴圈 1.已知次數 語法 用花括號定義迴圈次數 for variable in do command command done for variable in a b c do command command done 案例 輸出1到5 for i in doecho idone 列印1到50的...