在 Linux Bash 中使用陣列
Bash 有一個陣列結構(一些語言稱之為列表)。在本文中,我們將解釋這種結構。稍後,我們將研究 Bash 指令碼中的以下主題。
- 陣列宣告
- 訪問陣列中的值
- 向陣列新增新值
- 從陣列中刪除一個值
陣列是一種將相似資料儲存在一起的資料結構。陣列中的每個資料都有一個索引,第一個元素的索引是 0
。我們可以通過迴圈順序訪問這些資料,也可以使用資料索引單獨訪問這些資料。我們還可以更改陣列、新增新值和刪除現有值。
在 Bash 中使用陣列
現在我們知道了陣列是什麼,我們可以檢查它在 Bash 中的使用。
宣告一個陣列
通過將值括在括號中來宣告陣列。值之間只有空格,沒有逗號等字元。下面是一個示例陣列宣告。
arr=("black" "white" "red" "blue" "green")
我們可以使用以下方法來宣告一個整數值陣列。
intArr=(1 2 3 4)
intArr=($(seq 1 4))
intArr=({1..4})
這些示例宣告瞭一個包含數字 1 到 4
的陣列。
訪問陣列
有許多不同的方法可以訪問陣列中的資料。例如,我們可以列印整個陣列,使用索引訪問單個元素,或者使用迴圈依次訪問每個元素。讓我們一一解釋每種方法。
訪問整個陣列
我們可以使用 [*]
或 [@]
命令來訪問陣列中的所有值。例如,讓我們使用這些命令來列印我們上面定義的 arr
陣列中的所有值。
arr=("black" "white" "red" "blue" "green")
echo "With *: ${arr[*]}"
echo "With @: ${arr[@]}"
使用索引訪問元素
陣列中第一個元素的索引為 0
,隨後元素的索引依次增加。我們可以通過陣列中元素的索引號來訪問該元素。例如,我們使用下面的 Bash 程式碼來獲取 arr
陣列中的 red
值。
arr=("black" "white" "red" "blue" "green")
echo "${arr[2]}"
使用迴圈訪問陣列元素
我們可以使用 for
迴圈一個一個地訪問陣列的所有元素。下面是 Bash 指令碼,它將把 arr
陣列中的每種顏色列印到螢幕上。
arr=("black" "white" "red" "blue" "green")
for color in ${arr[@]}; do
echo $color
done
如果我們想連同索引號一起訪問這些值,我們可以使用下面的程式碼。
arr=("black" "white" "red" "blue" "green")
for i in ${!arr[@]}; do
echo "$i: ${arr[$i]}"
done
${!arr[@]}
命令返回陣列中所有值的索引。然後,使用這些索引訪問元素。
向陣列新增新元素
要將新元素新增到陣列中,我們可以為新值分配索引號或使用+=
運算子。
arr=("black" "white" "red" "blue" "green")
echo "Before adding purple: ${arr[@]}"
arr[5]="purple" # or use arr+=("purple"), exactly same
echo "After adding purple: ${arr[@]}"
從陣列中刪除元素
我們可以使用 unset
命令刪除陣列中的任何資料,甚至完全刪除陣列本身。
arr=("black" "white" "red" "blue" "green")
echo "Before removing white: ${arr[@]}"
unset arr[1]
echo "After removing white: ${arr[@]}"
Yahya Irmak has experience in full stack technologies such as Java, Spring Boot, JavaScript, CSS, HTML.
LinkedIn