與其他程式語言一樣,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...