Shell陣列和函式
阿新 • • 發佈:2018-11-21
陣列中可以存放多個值。Bash Shell 只支援一維陣列(不支援多維陣列)。
Shell 陣列用括號來表示,元素用"空格"符號分割開,語法格式如下:
array_name=(value1 ... valuen)
2.陣列常用操作
1)定義一個數組: myarray=(1 2 3 4 5);
2)讀取陣列的某一個元素 :
echo${myarray[下標值]}
# 注意陣列名稱必須使用{} 括起來, 下標值從0開始編號;
3)陣列元素的賦值:
myarray[下標值] =
xxx ;
4)顯示陣列的所有元素
echo${myarray[*]}
;
5)獲得陣列的長度(元素的個數):
echo
${#array[@]}
或者
echo${#array[*]}
;
6)刪除一個數組元素:
unset
myarray[下標值]
陣列的遍歷:
#!/bin/bash my_arry=(a b "c","d" abc) echo "-------FOR迴圈遍歷輸出陣列--------" for i in ${my_arry[@]}; do echo $idone
陣列使用方法舉例
1.常規方法輸出陣列的所有元素,並進行獨立的處理。
用 ${myarray[*]} 直接輸出的所有元素的個數,對陣列元素進行獨立操作的時候,不太方便,所以有必要。
2.有時候不知道陣列中元素的個數,因此陣列的長度事先是不知道的,因此此時,需要動態的擴充套件陣列長度與空間。
# 執行方法:指令碼名server1 server2 server3 server...
# 獲得所有引數存入陣列
list=($*)
len=
${#list[@]}
shell和函式的定義
1.linux shell 函式
將一組命令集或語句形成一個可用的塊
2.shell 函式的組成
函式名:函式名字,注意一個指令碼中函式名要唯一,否則會引起呼叫函式紊亂。
函式體: 函式內部命令的集合,實現一個業務的功能。
3.shell 函式定義的格式
function 函式名()
# function可以省略,注意()內部不帶任何引數。
{
命令1
命令2
. . .
}
四要素:
- 返回型別 (強)
- 函式名
- 引數列表
- 函式體
函式使用方法舉例
1.函式定義及引用例項一: 最簡單的定義及引用
function print_welcome()
#function可以去掉,注意括號裡不能有引數
{
echo
"演練函式的定義及引用方法:"
echo
"welcome,now time is `date`"
}
print_welcome
#函式的名字,呼叫
2.函式定義及引用例項二:向函式傳遞引數演練
向函式傳遞引數就像在一般指令碼中使用特殊變數1, 2 … $ 9一樣,函式取得所傳引數後,最好先在函式內重新設定變數儲存所傳的引數。
程式功能:向函式傳遞一個變數值,對該變數值進行相關的運算,並輸出結果。
function
sum()
{
a1=
$1
a2=
$2
echo
"演練函式內參數的傳遞的方法"
if
[
$#-eq
2
]
#如果引數的個數等於2
then
echo
"符合函式要求的引數個數"
let
sum=a1+a2
else
echo
"函式要求的引數個數不符,請重新輸入..."
fi
echo
"$a1+$a2=$sum"
}
sum
1090
#函式名和兩個引數,呼叫
3.函式檔案和指令碼檔案不在同一個檔案中
. ./func_3.sh
#注意格式:點 空格 函式檔案地址