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的編程進階