Bash 基礎知識系列 #5:在 Bash 中使用數組
在本系列的前面部分中,你了解了變數。變數中可以有單個值。
數組內部可以有多個值。當你必須一次處理多個變數時,這會使事情變得更容易。你不必將各個值存儲在新變數中。
因此,不要像這樣聲明五個變數:
distro1=Ubuntu
distro2=Fedora
distro3=SUSE
distro4=Arch Linux
distro5=Nix
你可以在單個數組中初始化它們所有:
distros=(Ubuntu Fedora SUSE "Arch Linux" Nix)
與其他一些編程語言不同,你不使用逗號作為數組元素分隔符。
那挺好的。讓我們看看如何訪問數組元素。
在 Bash 中訪問數組元素
使用索引(數組中的位置)訪問數組元素。要訪問索引 N 處的數組元素,請使用:
${array_name[N]}
? 與大多數其他編程語言一樣,Bash Shell 中的數組從索引 0 開始。這意味著第一個元素的索引為 0,第二個元素的索引為 1,第 n 個元素的索引為
n-1
。
因此,如果你想列印 SUSE,你將使用:
echo ${distros[2]}
?
${
之後或}
之前不能有任何空格。你不能像${ array[n] }
那樣使用它。
一次訪問所有數組元素
假設你要列印數組的所有元素。
你可以一一使用 echo ${array[n]}
但這確實沒有必要。有一個更好更簡單的方法:
${array[*]}
這將為你提供所有數組元素。
在 Bash 中獲取數組長度
如何知道數組中有多少個元素? 有一個專門的方法 在 Bash 中獲取數組長度:
${#array_name[@]}
就這麼簡單,對吧?
在 Bash 中添加數組元素
如果必須向數組添加其他元素,請使用 +=
運算符 將元素追加到 Bash 中的現有數組:
array_name+=("new_value")
這是一個例子:
? 追加元素時使用
()
很重要。
你還可以使用索引將元素設置在任何位置。
array_name[N]=new_value
但請記住使用正確的索引編號。 如果在現有索引上使用它,新值將替換該元素。
如果你使用「越界」索引,它仍會添加到最後一個元素之後。例如,如果數組長度為 6,並且你嘗試在索引 9 處設置新值,則該值仍將作為最後一個元素添加到第 7 個位置(索引 6)。
刪除數組元素
你可以使用 Shell 內置的 unset
通過提供索引號來刪除數組元素:
unset array_name[N]
這是一個示例,我刪除了數組的第四個元素。
你還可以通過 unset 來刪除整個數組:
unset array_name
? Bash 中沒有嚴格的數據類型規則。你可以創建一個同時包含整數和字元串的數組。
?️ 練習時間
讓我們練習一下你所學到的有關 Bash 數組的知識。
練習 1:創建一個 Bash 腳本,其中包含五個最佳 Linux 發行版的數組。全部列印出來。
現在,用 「Hannah Montanna Linux」 替換中間的選擇。
練習 2:創建一個 Bash 腳本,該腳本接受用戶提供的三個數字,然後以相反的順序列印它們。
預期輸出:
Enter three numbers and press enter
12 23 44
Numbers in reverse order are: 44 23 12
我希望你喜歡通過本系列學習 Bash Shell 腳本。在下一章中,你將學習如何使用 if-else
。敬請關注。
(題圖:MJ/09477e2f-2bf9-4fdf-bc1e-c894a068adf2)
via: https://itsfoss.com/bash-arrays/
作者:Abhishek Prakash 選題:lkxed 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive