指令碼基礎2
阿新 • • 發佈:2018-11-06
在指令碼內 #!/bin/bash read -p "請輸入一個數字" num if [ $num -eq 60 ];then echo "猜對了" else echo "猜錯了" fi
這是一個完整的但分值if條件語句,兩個動作必定執行一個。if如果,then那麼,else否則,fi結尾。
在指令碼內
#!/bin/bash
read -p "請輸入一個數字" num 這是讓使用者給num賦值
if [ $num -eq 60 ];then
echo "猜對了"
elif [ $num -lt 60 ];then
echo "猜小了"
else
echo "猜錯了"
fi
這是一個多分支if條件語句,三個動作必定也只能執行一個,寫多分支語句時要注意,寫第一個條件的範圍不能涵蓋第二個條件,優先順序是從上到下執行的,符合一個就不會再往下看其他條件了。
在指令碼內 #!/bin/bash for i in 1 2 3 4 5 do echo $i done
for是迴圈,讓i從1 2 3 4 5裡依次迴圈取值,有幾個值就取幾次。do是開始做什麼,done是結束,他們之間叫作一個迴圈體。
在指令碼內 #!/bin/bashfor ((i=0;i<10;i++))
do
echo $i
done
寫兩個小括號是讓shell支援C語言,首先i賦值0進入迴圈體,輸出0到螢幕,然後執行i++這個動作(在自身+1),判斷i此時符不符合小於10的條件,如果不符合就會進行下一輪迴圈,直到符合條件退出迴圈體。
在指令碼內 #!/bin/bash for ((i=0;;i++)) do echo $i done
兩個分號之間什麼都不加就是無限迴圈,因為中間判斷是空的。
在指令碼內 #!/bin/bash for i in {1..10} do echo $i
let i++ 或
((i++))
done
let i++ 是讓shell認識他,兩個小括號是讓shell支援C語言。
在指令碼內
#!/bin/bash
read i while [ $i -lt 10 ] do echo $i let i++ sleep 1 done
這是while迴圈,後面跟的是終止迴圈的條件,如果使用者輸入0,那麼會輸入0~9,sleep 1 是讓等待1秒後進入下次迴圈
如果是while : 那麼就是無限迴圈終止條件為空。
在指令碼內 #!/bin/bash read i case $i in start) echo "服務啟動" ;; stop) echo "服務停止" ;; *) echo "重新輸入" ;; esac
case是類似if的一種語句,他們最大的區別就是case是平級的,沒有優先順序,通常case用來做功能選單和服務啟動指令碼。
在指令碼內 #!/bin/bash function (也可以不寫) aihao(){ echo "吃飯" echo "睡覺" echo "打豆豆" } aihao
這個是函式體的格式,在指令碼內如果不呼叫函式體,是不會有任何作用的,呼叫時寫幾次函式體的名字就呼叫幾次。
在指令碼內還有四種迴圈的控制語句
exit:終止整個指令碼
break:退出單個距離最近的迴圈體
continue:退出一次迴圈,不退出迴圈體
return:退出整個函式體