shell陣列操作

2021-09-23 13:16:52 字數 1824 閱讀 1654

一、陣列定義

使用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 ...