陣列包括的資料型別
獲取陣列的長度
陣列的遍歷
陣列的切片
陣列的替換
向函式傳陣列引數
從函式中返回陣列
陣列中的元素:(30 20 10 60 50 40)
陣列中的索引: 0 1 2 3 4 5
方法一陣列名=(value0 value1 value2 …)
方法二陣列名=([0]=value [1]=value [2]=value …)
方法三列表名=「value0 value1 value2 …」
方法四陣列名[0]=「value」
陣列名[1]=「value」
陣列名[2]=「value」
1.數值型別
2.字元型別
使用""或』 '定義
arr_number=(1 2 3 4 5)
取得陣列元素的個數
length=$
或者length=$
取得陣列單個元素的長度
length=$
#!/bin/bash
arr_number=
(1 2 3 4 5)
forvin$
doecho
$vdone
arr=(1 2 3 4 5)
echo $ #輸出整個陣列
echo $ #獲取 $ 的值
echo $
echo $
arr=(1 2 3 4 5)
echo $
echo $
arr=($)
echo $
方法一array_name[index]=value
方法二array_name[$]=value
方法三array_name=("$" value … valuen)
雙引號不可省略,否則當陣列array_name中存在包含空格的元素時會按照空格將元素拆分為多個
不能將"@"替換為」*「,如果替換為 " * 「,不加雙引號時與」@"的表現一致,加雙引號時,會將陣列array_name中的所有元素作為乙個元素新增到陣列中
for i in 「$」; do echo $i; done
方法四array_name+=(value1 … valuen)
待新增元素必須用"()"包圍起來,並且多個元素用空格分離
如果將陣列變數作為函式引數,函式只會取陣列變數的第乙個值
test1()
}array=
echo 「原始陣列的值為:$」
test1 $array
解決這個問題則需要將陣列變數的值分解成單個的值,然後這些值作為函式引數使用。在函式內部,再將所有的引數重新合成乙個新的陣列變數。
test2() "
}array=(3 2 1 4 5)
echo 「原始陣列的值為:」$"
test2 $
test2()do
sum=$[
$sum + $value
]for value in$do
sum=$[
$sum + $value
]done
echo
$sum
}
test3(
) * 2]
}echo$}
array=
(3 2 1 4 5)
echo
"原始陣列的值為:"$"
result1=`test2 $
`echo "新陣列的和為:$result1"
shell指令碼 陣列的使用
bin bash 陣列的基本元素和使用 生成乙個陣列 my array 0 1 2 3 4 5 6 7 8 9 echo 陣列的所有元素 echo 陣列中下標為5的元素 echo 陣列的長度是 或 修改陣列中某個元素的值 my array 5 100 echo 修改下標為5的元素的值後,陣列的所有元...
Shell指令碼陣列操作小結
linux shell在程式設計方面比windows批處理強大很多,無論是在迴圈 運算。bash支援一維陣列 不支援多維陣列 並且沒有限定陣列的大小。類似與c語言,陣列元素的下標由0開始編號。獲取陣列中的元素要利用下標,下標可以是整數或算術表示式,其值應大於或等於0。定義陣列 在shell中,用括號...
shell指令碼 數值比較
用於數值比較的無非大於 小於 等於 大於等於 小於等於這幾個。比較格式 數值1 比較符 數值2 注意左邊的括號與數值1之間有乙個空格,同樣,數值2和右邊的括號之間也有空格。數值比較運算子對應下面幾個 eq判斷相等,相等返回true,否則返回false ne判斷是否不相等,不相等返回true,否則返回...