一、數組概述
數組是一種數據類型,可以存儲一系列同類型的元素。在Shell中,數組可以使用下標來訪問元素,下標從0開始計數。定義數組時,需要使用關鍵字“declare”或“typeset”。
declare -a array_name
或者
typeset -a array_name
其中,“-a”表示該變量是一個數組類型。
二、數組賦值
可以使用下標給數組賦值,也可以使用獨立的賦值語句,如下所示:
# 使用下標賦值 array_name[0]=value1 array_name[1]=value2 # 使用獨立的賦值語句 array_name=( value1 value2 value3 )
當使用下標賦值時,需要注意下標是從0開始計數的。
三、數組遍歷
Shell提供了多種方式來遍曆數組,下面介紹兩種最常用的方式:for循環和while循環。
1. for循環遍曆數組
使用for循環可以輕鬆地遍曆數組中的每個元素:
for element in "${array_name[@]}" do echo $element done
其中,“${array_name[@]}”表示遍歷整個數組,並使用變量“element”依次訪問每個數組元素。
2. while循環遍曆數組
使用while循環也可以遍曆數組,示例代碼如下:
i=0 while [ $i -lt ${#array_name[@]} ] do echo ${array_name[$i]} ((i++)) done
其中,“${#array_name[@]}”表示數組的元素個數,變量“i”用於遍曆數組元素。
四、數組拼接、切分和長度
1. 數組拼接
可以使用“+”符號將兩個或多個數組拼接成一個新數組:
array1=(1 2 3) array2=(4 5 6) array3=(${array1[@]} ${array2[@]}) echo ${array3[@]} # 輸出:1 2 3 4 5 6
2. 切分數組
可以使用“:”符號截取數組的一部分,示例代碼如下:
array1=(1 2 3 4 5 6) slice=(${array1[@]:1:3}) echo ${slice[@]} # 輸出:2 3 4
其中,“1”表示起始下標,“3”表示長度,即從索引1處開始,截取長度為3的子數組。
3. 數組長度
可以使用“#”符號獲取數組的長度,示例代碼如下:
array1=(1 2 3 4 5 6) length=${#array1[@]} echo $length # 輸出:6
五、數組排序和反轉
1. 排序
可以使用“sort”命令對數組進行排序:
array1=(5 1 3 4 2) sorted_array=($(echo ${array1[@]} | tr ' ' '\n' | sort -n)) echo ${sorted_array[@]} # 輸出:1 2 3 4 5
其中,“tr”命令用於將數組轉換成一行,方便“sort”命令排序。
2. 反轉
可以使用“tac”命令將數組反轉:
array1=(1 2 3 4 5) reversed_array=($(echo ${array1[@]} | tac -s' ')) echo ${reversed_array[@]} # 輸出:5 4 3 2 1
其中,“-s”選項表示分隔符,這裡設置為空格。
原創文章,作者:CQJN,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/136627.html