shell--流程控制
l if語句
bash流程控制不可為空,else分支沒有語句執行,就不寫else
if condition1
then
command1
elif condition2
then
command2
else
commandN
fi
l for迴圈
for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done
l while語句
int=1
while(( $int<=5 ))
do
echo $int
let "int++"
done
echo '按下 <CTRL-D>
echo -n '輸入你最喜歡的電影名: '
while read FILM
do
echo "是的!$FILM 是一部好電影"
done
l until
until迴圈執行一系列命令直至條件為真時停止。
until condition
do
command
done
l case語句
case 值 in
模式1)
command1
command2
...
commandN
;;
模式2)
command1
command2
...
commandN
;;
esac
【shell函式】
[ function ] funname [()]
{
action;
[return int;]
}
普通函式
demoFun(){
echo "這是我的第一個 shell 函式!"
}
有返回值的函式
funWithReturn(){
echo "這個函式會對輸入的兩個數字進行相加運算..."
echo "輸入第一個數字: "
read aNum
echo "輸入第二個數字: "
read anotherNum
echo "兩個數字分別為 $aNum 和 $anotherNum !"
return $(($aNum+$anotherNum))
}
funWithReturn
echo "輸入的兩個數字之和為 $? !"
l 函式返回值在呼叫該函式後通過 $? 來獲得
函式引數
funWithParam(){
echo "第一個引數為 $1 !"
echo "第二個引數為 $2 !"
echo "第十個引數為 $10 !"
echo "第十個引數為 ${10} !"
echo "第十一個引數為 ${11} !"
echo "引數總數有 $# 個!"
echo "作為一個字串輸出所有引數 $* !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73
當n>=10時,需要使用${n}來獲取引數。
【檔案包含】
可包含外部指令碼。
. filename #中間必須有空格
Source filename
l 被包含的檔案不需要可執行許可權