鍍金池/ 教程/ Linux/ Shell 數(shù)組:shell 數(shù)組的定義、數(shù)組長(zhǎng)度
Shell 特殊變量:Shell $0, $#, $*, $@, $?, $$和命令行參數(shù)
Shell 文件包含
Shell 輸入輸出重定向:Shell Here Document,/dev/null
Shell 函數(shù)參數(shù)
Shell 簡(jiǎn)介
Shell printf命令:格式化輸出語(yǔ)句
第一個(gè) Shell 腳本
Shell echo 命令
Shell 運(yùn)算符:Shell 算數(shù)運(yùn)算符、關(guān)系運(yùn)算符、布爾運(yùn)算符、字符串運(yùn)算符等
Shell 數(shù)組:shell 數(shù)組的定義、數(shù)組長(zhǎng)度
Shell until 循環(huán)
Shell if else 語(yǔ)句
Shell 變量:Shell 變量的定義、刪除變量、只讀變量、變量類(lèi)型
Shell 字符串
Shell 與編譯型語(yǔ)言的差異
Shell 函數(shù):Shell 函數(shù)返回值、刪除函數(shù)、在終端調(diào)用函數(shù)
Shell 替換
Shell case esac 語(yǔ)句
Shell for 循環(huán)
什么時(shí)候使用 Shell
Shell 注釋
幾種常見(jiàn)的 Shell
Shell while 循環(huán)
Shell break 和 continue 命令

Shell 數(shù)組:shell 數(shù)組的定義、數(shù)組長(zhǎng)度

Shell 在編程方面比 Windows 批處理強(qiáng)大很多,無(wú)論是在循環(huán)、運(yùn)算。

bash 支持一維數(shù)組(不支持多維數(shù)組),并且沒(méi)有限定數(shù)組的大小。類(lèi)似與 C 語(yǔ)言,數(shù)組元素的下標(biāo)由0開(kāi)始編號(hào)。獲取數(shù)組中的元素要利用下標(biāo),下標(biāo)可以是整數(shù)或算術(shù)表達(dá)式,其值應(yīng)大于或等于0。

定義數(shù)組

在 Shell 中,用括號(hào)來(lái)表示數(shù)組,數(shù)組元素用“空格”符號(hào)分割開(kāi)。定義數(shù)組的一般形式為:

    array_name=(value1 ... valuen)

例如:

array_name=(value0 value1 value2 value3)

或者

array_name=(
value0
value1
value2
value3
)

還可以單獨(dú)定義數(shù)組的各個(gè)分量:

array_name[0]=value0
array_name[1]=value1
array_name[2]=value2

可以不使用連續(xù)的下標(biāo),而且下標(biāo)的范圍沒(méi)有限制。

讀取數(shù)組

讀取數(shù)組元素值的一般格式是:

    ${array_name[index]}

例如:

valuen=${array_name[2]}

舉個(gè)例子:

#!/bin/sh

NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"
echo "First Index: ${NAME[0]}"
echo "Second Index: ${NAME[1]}"

運(yùn)行腳本,輸出:

$./test.sh
First Index: Zara
Second Index: Qadir

使用@或*可以獲取數(shù)組中的所有元素,例如:

${array_name[*]}
${array_name[@]}

舉個(gè)例子:

#!/bin/sh

NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"
echo "First Method: ${NAME[*]}"
echo "Second Method: ${NAME[@]}"

運(yùn)行腳本,輸出:

$./test.sh
First Method: Zara Qadir Mahnaz Ayan Daisy
Second Method: Zara Qadir Mahnaz Ayan Daisy

獲取數(shù)組的長(zhǎng)度

獲取數(shù)組長(zhǎng)度的方法與獲取字符串長(zhǎng)度的方法相同,例如:

# 取得數(shù)組元素的個(gè)數(shù)
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得數(shù)組單個(gè)元素的長(zhǎng)度
lengthn=${#array_name[n]}