linux Shell 命令列-03-array Shell 陣列

老马啸西风發表於2024-03-11

擴充閱讀

linux Shell 命令列-00-intro 入門介紹

linux Shell 命令列-02-var 變數

linux Shell 命令列-03-array 陣列

linux Shell 命令列-04-operator 運算子

linux Shell 命令列-05-test 驗證是否符合條件

linux Shell 命令列-06-flow control 流程控制

linux Shell 命令列-07-func 函式

linux Shell 命令列-08-file include 檔案包含

linux Shell 命令列-09-redirect 重定向

定義

Shell 僅支援單維陣列。

array=(值1 值2 ... 值n)
  • array.sh
#!/bin/sh

# 陣列演示
array=(a b "c" d)

# 另一種定義陣列的方式

array_two[0]=a
array_two[1]=b
array_two[2]="c"
array_two[3]=d

讀取

您可以這樣從陣列中讀取:

${array_name[index]}
  • read_array.sh
#!/bin/sh

# 從陣列中讀取

array=(a b c "d")
echo "第一個元素是 ${array[0]}"
echo "第二個元素是 ${array[1]}"
echo "第三個元素是 ${array[2]}"
echo "最後一個元素是 ${array[-1]}"
  • 執行
root@iZuf60ahcky4k4nfv470juZ:~/code/shell# chmod +x read_array.sh 
root@iZuf60ahcky4k4nfv470juZ:~/code/shell# ./read_array.sh 
第一個元素是 a
第二個元素是 b
第三個元素是 c
最後一個元素是 d

讀取所有元素

我們可以使用 *@ 來獲取陣列中的所有元素。

  • read_all_array.sh
#!/bin/sh
# 讀取陣列中的所有元素

array=(a b c d)
echo "陣列中的所有元素:${array[*]}"
echo "陣列中的所有元素:${array[@]}"
  • 執行
root@iZuf60ahcky4k4nfv470juZ:~/code/shell# chmod +x read_all_array.sh 
root@iZuf60ahcky4k4nfv470juZ:~/code/shell# ./read_all_array.sh 
陣列中的所有元素:a b c d
陣列中的所有元素:a b c d

陣列長度

我們可以使用 ${#array[*]}${#array[@]} 來獲取陣列的大小。

  • array_length.sh
!#/bin/sh
# 陣列長度

array=(a b c d E)
echo "陣列的大小為:${#array[*]}"
echo "陣列的大小為:${#array[@]}"
  • 執行
root@iZuf60ahcky4k4nfv470juZ:~/code/shell# chmod +x array_length.sh 
root@iZuf60ahcky4k4nfv470juZ:~/code/shell# ./array_length.sh 
陣列的大小為:5
陣列的大小為:5

參考資料

https://www.runoob.com/linux/linux-shell.html

本文由部落格一文多發平臺 OpenWrite 釋出!

相關文章