1. 程式人生 > >shell--流程控制

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  被包含的檔案不需要可執行許可權