HOWTO · Bash

Bash 中的陣列長度

本教程將討論如何在 Bash 中查詢陣列長度。

出於各種目的,我們需要知道陣列的長度。例如,如果你正在查詢陣列中的特定資料並且不知道陣列的長度,則需要在開始搜尋之前先找到陣列的長度。

其他程式語言有一個內建函式或關鍵字來查詢陣列長度。但是在 Bash 指令碼中,它有點不同。

在本文中,我們將瞭解如何找到陣列長度並將其用於各種目的。

在 Bash 中獲取陣列長度

查詢陣列長度的一般語法是:

${#ARRAY[*]}

在下面的示例中,我們只查詢陣列的長度:

names=("Alen" "Walker" "Miller")
echo The length of the array is ${#names[*]}

在上面的程式碼中,我們計算了 names 陣列的長度。執行示例程式碼後,你將獲得以下輸出。

輸出:

The length of the array is 3

在 Bash 中使用 for 迴圈來得到陣列長度

現在,是時候進行一個高階示例了。我們已經成功地理解了如何找到陣列的長度。

我們現在將看到如何將這個陣列長度用於各種目的。下面,我們分享了之前示例的更新版本,它將首先計算陣列的長度,然後在 for 迴圈中使用它來顯示陣列中的所有元素。

這是我們示例的程式碼:

names=("Alen" "Walker" "Miller")
len=${#names[*]}
echo The length of the array is - $len
for (( i=0; i<$len; i++ ))
do
echo The value of element $i is: ${names[$i]}
done

如你所見,在 len=${#names[*]} 行中,我們建立了一個名為 len 的變數並將其分配給陣列長度的值。這很重要,因為我們需要知道陣列長度才能執行迴圈並提取陣列資料。

之後,我們列印陣列長度並執行一個 for 迴圈來提取每個陣列元素。如果你檢視程式的以下輸出,你可以看到我們從 0 開始陣列索引。

眾所周知,陣列索引總是從 0 開始。

輸出:

The length of the array is 3
The value of element 0 is: Alen
The value of element 1 is: Walker
The value of element 2 is: Miller

請注意,本文中使用的所有程式碼都是用 Bash 編寫的。它僅適用於 Linux Shell 環境。