一、數組的定義
Shell中數組定義使用語法:array_name=(value1 value2 value3 … valuen),即以一個列表的形式存儲一系列數值或字符串,這些數值或字符串在內存中是連續儲存的。
numbers=(1 2 3 4 5)
fruits=("apple" "banana" "orange")
上述代碼定義了兩個數組,numbers為數字類型的數組,fruits為字符串類型的數組。
二、數組的遍歷
使用for循環可以遍曆數組中的每一項:
numbers=(1 2 3 4 5)
for i in ${numbers[@]}; do
echo $i
done
上述代碼使用for循環遍歷numbers數組,並依次輸出每一個元素。
三、數組的長度
使用“#”符號可以獲取數組的長度:
numbers=(1 2 3 4 5)
length=${#numbers[@]}
echo $length
上述代碼獲取了數組numbers的長度,並將其賦值給變量length,最後輸出length的值。
四、數組的拼接與拆分
使用“+”符號可以將兩個數組拼接在一起:
numbers1=(1 2 3)
numbers2=(4 5 6)
numbers=(${numbers1[@]} ${numbers2[@]})
echo ${numbers[@]}
上述代碼將數組numbers1和numbers2拼接到一起,並將結果存入數組numbers中。
使用“:”符號可以將一個字符串拆分成數組:
str="apple,banana,orange"
fruits=(${str//,/ })
echo ${fruits[@]}
上述代碼將字符串str按逗號拆分成數組fruits。
五、數組的排序
可以使用內置命令“sort”對數組進行排序:
numbers=(3 1 5 4 2)
sorted_numbers=($(echo "${numbers[@]}" | tr ' ' '\n' | sort -n))
echo ${sorted_numbers[@]}
上述代碼使用“sort -n”進行數字升序排序,並將結果存入數組sorted_numbers中。
六、數組的比較
可以使用“==”或“!=”符號比較兩個數組是否相等或不相等:
numbers1=(1 2 3)
numbers2=(1 2 3)
if [ "${numbers1[@]}" == "${numbers2[@]}" ]; then
echo "equal"
else
echo "not equal"
fi
上述代碼比較了數組numbers1和numbers2是否相等。
七、總結
本篇文章詳細介紹了Shell中數組的定義、遍歷、長度、拼接與拆分、排序和比較等操作。數組是Shell編程中非常重要的數據類型,在程序開發過程中有着廣泛的應用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/162638.html