程序=數據+數據操作
變量是數據的載體,函數是數據操作的載體。
一、函數(方法)
是程序中最小的功能(封裝)單元,在函數中一般封裝具有特定功能的實現。
優點:易讀易維護、實現功能複用。
聲明函數
[function 可選] 函數名(){
函數體
}
======下面舉例:
hello(){
echo "hello,this is a function."
}
調用函數:直接寫函數名稱即可。如 調用上面的 hello。
函數不調用不執行;必須先聲明再調用(因爲解釋器是從上到下來執行的),這是弱類型計算機語言的特點。
1、帶參數函數調用
傳參函數,調用的時候直接輸入參數。
3、帶返回值的函數調用
返回值建議用0或非0表示,0表示正常執行。不建議直接return結果。
練習:求周長/面積
二、流程控制 if case for while
1、分支之 if 的三種寫法
單分支
舉例: 不滿足的情況沒提示。 if [ xxx ] then .... fi
雙分支
舉例: if [ xxx ]then....else...fi
多分支
舉例:
if [ xxx ]then....elif [ xxx ] then ... else...fi (中間可多個elif 判斷)
2、分支之case(多分支實現)
舉例: 區間判斷
case能實現的if elif可以實現,反之不一定。
case $name in
1)
code;;
2)
code;;
*)
code;;
esac
另外說明,case可以進行區間判斷,但是區間範圍侷限於0-9,超出範圍則識別爲*那一類,即使寫的是[9-100]之類的。
3、循環之for的用法
https://blog.csdn.net/wzj_110/article/details/86669426 for...in的用法
格式1:
for 變量名 in 列表(v1 v2 ...v3) --從列表中取出元素賦給變量
do
循環體
done
格式2: seq a n b ---a、b爲起始、終止值,n爲步長,不設置的話默認爲1.
for 變量名 in `seq 15` --從1到15之間的所有整數序列,包括能取到1和15。 seq 5 15,指取到5-15的值。
do xxx done
4、循環之while的用法
while [ xxx ]
do
循環體
done
創建文件例子:
重定向
將命令結果作爲內容輸出到指定文件中。
1>> 命令正常執行,纔將結果輸出到文件中
2>> 命令執行失敗,將錯誤提示輸出到文件中
數組
和變量類似,也是數據的載體,數據可以存放多個值,變量一次性只能放一個值。
賦值數組:myvar =(v1 v2 v3 v4) 括號內多個值,進行賦值
查詢元素:
myvar[0] myvar[1] 查詢值,用索引的方式,下標從0開始。
myvar[*] 或 myvar[@] 獲取所有元素值
"${#myvar[*]}" 獲取元素個數,但是#要放在數組名之前。
修改數組元素: myvar[0] = 100 ,直接重新給元素賦值即可。
刪除數組: unset myvar 和變量刪除一樣操作
循環for遍歷讀取變量數組
傳參的方式:鍵盤輸入、命令行後面輸入、調用函數時傳遞。