Shell中的控制結構

2021-10-12 04:48:14 字數 2070 閱讀 8182

與其他程式語言一樣,shell也有順序、分支、迴圈三種控制結構。

即程式自入口到出口依次執行,例項如下:

a=10

b=20

echo $[

$a+$b

]

分支如同原本筆直的大道突然在前面分成了兩條以上的小路,此時,需要根據所給條件的判定結果,決定最終走哪一條路。

2.1 雙分支

if...else結構,例項如下:

t=20if[

$t> 20 ]

then

echo

"$t大於20"

else

echo

"$t小於20"

fi

case語句,例項如下:

action=stop

case

$action

in stop)

echo

"stop *** service";;

start)

echo

"start *** service";;

restart)

echo

"restart *** service";;

*)#預設匹配

echo

"execute other actions"

;;

esac #case的反寫

重複做具有同樣流程的事。

3.1 for迴圈

九九乘法表,例項如下:

for

((i=

1;i<

10;i++

))do

for((j=

1;j<=i;j++

)) do

echo -ne "$j * $i = $[$i*

$j]\t"

done

echo -e "\n"

done

結果:1 * 1 = 1

1 * 2 = 2 2 * 2 = 4

1 * 3 = 3 2 * 3 = 6 3 * 3 = 9

1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16

1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25

1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36

1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49

1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64

1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81

3.2 while迴圈

求n!,例項如下:

i=1

res=1

while

[$i -le $1

]# $1為傳入指令碼的第乙個引數

do res=$[

$i*$res

] i=$[

$i+1]

done

echo

"$1的階乘為:$res"

shell指令碼中的控制流結構

控制結構包括 流控制和迴圈 流控制 if then else,測試結果或者為真 0 或者為假 1 迴圈 for until while 一 if then else 語句 格式 if 條件1 then命令1 elif條件2 then 命令2 else 命令3 fi 簡單的格式 if 條件 then ...

Shell控制結構 迴圈控制

迴圈控制 迴圈或跳轉是一系列命令的重複執行過程。3種迴圈語句 for 迴圈每次處理依次列表內資訊,直至迴圈耗盡。u n t i l迴圈直至條件為真。條件部分在迴圈末尾部分。while 迴圈w h i l e迴圈當條件為真時,迴圈執行,條件部分在迴圈頭。流控制語句的任何迴圈均可巢狀使用。1 for迴圈...

shell 筆記 控制結構

1.if.then.else結構 條件語句 if expr then elif expr then else fi 中括號表示乙個 test 命令,中括號和測試條件 expr 之間需要有空格 test命令有不同的測試,如檔案 字串比較 數字比較 expr和expr可以通過,o or a and ex...