一、陣列定義
使用declare -a 命令定義陣列(陣列的索引是從0開始計數的),接下來就可以通過操作符為不同索引位置的元素賦值。
declare -a names
names[0]=tom
names[1]=jack
在定義陣列的同時,可以同時賦值,用()表示,各元素之間用空格隔開
#定義的同時直接賦值
declare -a names=(tom jack)
#增加元素
names[2]=sue
二、陣列操作
1、賦值
指定下標,使用操作符為元素賦值,當下標不存在時,相當於為陣列增加元素
declare -a names
names[0]=tom
2、取值
指定下標,使用操作符從陣列中對應元素,然後取值,格式:$
days=(one two three four five)
#取出第1個元素
echo $
#取出第3個元素
echo $
獲得陣列中所有值:$、 $
$得到是以空格隔開的元素,可以用在陣列遍歷中; $得到的是一整個字串。
注意:$ 並不會獲得所有值,它只會獲得到第乙個元素的值;
即 $ 等價於 $
3、長度
利用」@」或「*」字元,將陣列擴充套件成列表,然後使用」#」來獲取陣列元素的個數。
days=(one two three four)
echo "陣列days的元素個數為:$"
4、遍歷
存在以下三種方式:
(1)$ 、$均可以獲得所有元素(不管是元素列表,還是一整個字串),使用for迴圈遍歷即可
(2)帶陣列下標的遍歷,當需要使用到陣列的下標時,可以使用$
(3)while迴圈:根據元素的個數遍歷,但對於稀疏陣列,可能會丟失資料
#!/bin/bash
#陣列遍歷
days=(one two three four)
#for迴圈遍歷
for day in $ #或$
do echo $day
done
echo "***************"
#fou迴圈帶下標遍歷
for i in $
do echo $
done
echo "***************"
#while迴圈
names=() #陣列names是乙個稀疏陣列
names[1]=tom
names[2]=jack
i=0while [ $i -lt $ ]
do echo $
let i++
done
5、刪除
刪除乙個陣列或陣列中元素用unset命令。
unset 陣列名[索引] #刪除索引下的元素
unset 陣列名 #刪除整個陣列
6 、連線
用()將多個陣列連線在一起,()中各個陣列用空格隔開。
days=(one two three four)
names=(tom jack)
days=($ $)
參考文件: shell的陣列操作
shell中陣列的下標預設是從0開始的 1。將字串存放在陣列中,獲取其長度 bin bash str a b n d array str length echo length for i 0 i length i doecho done along along laptop code shell s...
shell中陣列的操作
在寫shell指令碼時,有時也希望像c語言那樣去使用陣列,bash是支援一維陣列的。本文主要介紹在shell指令碼中關於陣列的應用,包括陣列的定義 讀取 替換 刪除和複製。類似與c語言,陣列元素的下標由0開始編號。獲取陣列中的元素要利用下標,下標可以是整數或算術表示式,其值應大於或等於0。在shel...
Shell中陣列的操作
看一下shell中陣列的幾種操作 定義 遍歷 修改 刪除 引數傳遞操作 shell中對於陣列的定義直接使用 元素之間使用空格隔開即可 array 1 2 3 4 5 array abc def gh 取得陣列的值 取出所有的數值以及取出某個位置上的數值 echo echo echo array 0 ...