1. 程式人生 > >Linux的編程進階

Linux的編程進階

循環

學習linux腳本學習是非常重要的部分,所以就要學習編程語言進階技術

關於流程的執行

條件選擇if語句 v 註意:if語句可嵌套

格式:v 單分支

if 判斷條件;then

條件為真的分支代碼

fi

v 雙分支

if 判斷條件; then

條件為真的分支代碼

else

條件為假的分支代碼

fi

v 多分支

if 判斷條件1; then

條件為真的分支代碼

elif 判斷條件2; then

條件為真的分支代碼

elif 判斷條件3; then

條件為真的分支代碼

else

以上條件都為假的分支代碼

fi

註:多支進行判斷時註意縮進能更好的看清判斷邏輯,if後面可使用[](test)進行判斷使用。

條件判斷case語句 格式:

case 變量引用 in

PAT1)

分支1

;;

PAT2)

分支2

;;

...

*)

默認分支

;;

esac

並且case支持通配符如:

*: 任意長度任意字符

?: 任意單個字符

[]:指定範圍內的任意單個字符

a|b: a或b

case語句變量一般為輸入變量,下面匹配必須完整匹配才能執行命令,*表示不是上面其他選項的剩下的所有情況,列如:

練習:編寫腳本/root/bin/yesorno.sh,提示用戶輸入yes或no,並判斷用戶輸入的是yes還是no,或是其它信息

read -p"input : " num

case $num in

yes)

echo "yes"

;;

no)

echo "no"

;;

*)

echo "其他"

;;

esac

循環執行

for循環 格式:

for 變量名 in 列表;do

循環體

done

依次將列表內的內容賦值到變量裏後代入下面的命令體中,列表中一個元素進行一次循環執行直到元素耗盡循環結束

列表生成方式

①直接寫出列表內容 列如:2 3 4

②已列表形式 列如:{1..100}

③命令輸出結果以及變量引用 列如:$(命令) $num

④使用glob,如:*.sh

練習:計算100以內所有能被3整除的整數之和

#!/bin/bash

num0=0

for num in {1..100} ;do

num1=$(($num%3))

if [ $num1 -eq 0 ];then

num2=$num

num0=$(($num0+$num2))

fi

done

echo $num0

while 循環 格式:

while CONDITION; do

循環體

Done

此循環只有一個判斷條件是否進入循環取決為條件是否“true”如果條件為“true”則一直進行循環直到條件為“false”為止

練習:使用while循環編寫九九乘法表

#!/bin/bash

i=1

j=1

while ((i<10));

do

while ((j<=i));

do

m=$(($i*$j))

echo -n "$i*$j=$m "

let j++

done

let i++

j=1

echo ""

done

until 循環 和while相反

until CONDITION; do

循環體

v done

v 進入條件: CONDITION 為false

v 退出條件: CONDITION 為true


Linux的編程進階