歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> Linux shell 中的數組和關聯數組

Linux shell 中的數組和關聯數組

日期:2017/3/3 11:32:05   编辑:SHELL編程

寫在前面的話

我用開始廢柴了,這個又是寫給我自己看的了。

普通數組

1.數組的定義

在Linux shell中定義一個普通的數組很簡單,首先我們先給數組命名(當然要符合所有的命名規則咯)。定義數組的一般格式就是: array_name=(element1 element2 element3 ...)

數組名=(元素1 元素2 元素3 。。。)

數組的定義用的是圓括號,和python中的tuple元組定義是相似的,但是元祖中的值一旦被定義就不能被改變,但是linux shell 中的數組值是可以被改變的。還有就是預先賦值的變量之間使用的是空格隔開的。同樣我們需要注意的是在linux shell 中所有的賦值語句也就是等號前後是不能有空格的,因為空格會被當做是命令來處理。

除了上述的定義方法之外,我們還可以直接采用index-value 索引-值 的這種方式來定義一個數組:

如下圖所示:

2.數組的引用

定義了數組我們當然是要用的咯,那麼我們要引用一個數組中的某個元素時(元素的索引同樣和大部分的計算機語言一樣是從0開始的)用的語句是${array_name[index]}

${數組名[數組的索引下標]}

如下圖所示:

我們定義了一個數組然後要打印出某個特定的元素:

當然如果我們要引用的是定義的數組的所有元素,我們要用的方法如下所示:

如果我們要獲取出數組的長度,我們可以用下面的方法:

${#array_name[*]} 或者是 ¥{#array_name[@]}

下圖是打印出數組的長度:

關聯數組

從Bash 4.0 (Bash 好容易調戲,那個風中女王的那個男主的哥哥) 引入了關聯數組,也就是索引可以是文本,是不是感覺有點像字典那種數據結構(字典是啥,額,大哥你是學計算機的麼)

首先我們必須要申明一下這個數組是關聯數組,然後再使用

declare -A array_name

關聯,英文是association 所以簡寫為 —A 我是這麼記憶的

然後我們可以給這個數組賦值,同樣是兩種方法

第一種方法

array_name=([index1]=val1 [index2]=val2)

第二種方法

array_name[index1]=val1

array_name[index2]=val2

舉一個例子運用一下咯:

如果我們需要知道關聯數組的索引以及這個數組中元素的個數我們可以用下面的這個方法:

寫在後面的話

你必須非常努力才可以看起來毫不費力~

Copyright © Linux教程網 All Rights Reserved