Bash 初學者系列 4:在 bash 中使用數(shù)組
在前面的文章中,我們介紹了如何??在 bash 中使用有限數(shù)量的變量???,比如要保存一個或兩個文件名或用戶名。
但是,如果在 bash 腳本中需要多個變量,該怎么辦?假設(shè)我們要創(chuàng)建一個 bash 腳本,從用戶那里讀取 100 個不同的輸入,那么需要創(chuàng)建 100 個變量嗎?
肯定不是這樣,我們需要使用數(shù)組。
在 bash 腳本中創(chuàng)建第一個數(shù)組
假設(shè)我們要創(chuàng)建一個名為 timestamp.sh 的腳本,用來更新 5 個不同文件的時間戳。
第一種使用比較原始的方法,創(chuàng)建 5 個不同的變量,如下所示:
可以看到這種方法寫起來比較繁瑣,我們還可以使用另一種方法,創(chuàng)建一個包含所有文件名的數(shù)組,如下語法:
這種比較簡潔,所以我們采用數(shù)組的方法,如下:
訪問bash中的數(shù)組元素
與大多數(shù)編程語言中一樣,數(shù)組中的元素索引是從 0 開始的,所以要訪問數(shù)組中第 n 個元素,其下標索引應(yīng)該是 [n - 1]。
比如,要打印數(shù)組中的第 2 個元素,可以參考如下方式:
以下 bash 腳本 reverse.sh,將倒序打印數(shù)組中的 5 個元素:
?
使用過 bash 的朋友可能會覺得奇怪,為什么我這里用這么多 echo 命令,而不是使用循環(huán)。我是想稍后在介紹 bash 中循環(huán)的使用。
也可以一次打印出所有數(shù)組元素:?
可以打印數(shù)組元素的總數(shù),也就是數(shù)組的大?。?
數(shù)組中元素的值是可以更改的。比如,我們可以用如下方式將數(shù)組中第一個元素的值改為 a.txt:
向數(shù)組中添加元素
我們首先創(chuàng)建一個包含 Linux 版本名稱的數(shù)組:
上述數(shù)組中包含三個元素??梢允褂?span style="background-color: #d6fad6;"> += 運算符將元素添加(追加)到數(shù)組的末尾,如下所示:
現(xiàn)在,數(shù)組中已經(jīng)有了 4 個元素,Kali 是最后一個:
刪除數(shù)組中的元素
我們首先創(chuàng)建一個包含 5 個數(shù)字的數(shù)組,其名稱為 num:
可以打印一下數(shù)組中的元素:?
我們可以使用 shell 內(nèi)置功能 unset 來刪除 數(shù)組中的第 3 個元素:
現(xiàn)在,我們再來打印一下 num 數(shù)組中的元素:
上面結(jié)果可以看到,第三個元素已經(jīng)被刪除。
也可以使用同樣的方法刪除數(shù)組中所有的元素:
創(chuàng)建具有不同數(shù)據(jù)類型的混合數(shù)組
與其他編程語言不同,在 bash 中,可以創(chuàng)建包含不同數(shù)據(jù)類型的數(shù)組,如下 user.sh 所示:?
上述腳本中的數(shù)組包含有四個元素,其中第二個元素為整型數(shù)據(jù)類型,其余三個元素為字符串。
以上就是本次分享全部內(nèi)容,歡迎討論。