linux shell陣列深入學習理解

2021-09-21 17:34:11 字數 2322 閱讀 9017

本文為大家介紹linux shell陣列的相關知識,並提供了充足的例子供參考,這麼好的東東,千萬不要錯過

bash shell只支援一維陣列,但引數個數沒有限制。

宣告乙個陣列:

declare -a array

(其實不用宣告,按陣列方式直接賦值給變數即可,bash就知道那是陣列)

陣列賦值:

(1) array=(var1 var2 var3 … varn)

(2) array=([0]=var1 [1]=var2 [2]=var3 … [n]=varn)

(3) array[0]=var1

arrya[1]=var2

…array[n]=varn

計算陣列元素個數:

$ 或者 $

bash的特殊引數 @ 和 * 都表示「擴充套件位置引數,從1開始」,但形式稍有差異,但在陣列裡使用好像是可以通用的。

引用陣列:

複製** **如下:

echo $

遍歷陣列:

複製** **如下:

filename=(ls)

for var in $;do

echo $var

done

下面為大家介紹一些shell陣列的小例子。

1、從「標準輸入」讀入n次字串,每次輸入的字串儲存在陣列array裡

複製** **如下:

#!/bin/bash

i=0n=5

while [ 「$i」 -lt $n ] ; do

echo 「please input strings …expr $i + 1"

read array[i]b

=i] b=

i]b=

' at position 3: i]}̲ echo "b」

i=expr $i + 1

done

2、將字串裡的字母逐個放入陣列,並輸出到「標準輸出」

複製** **如下:

#!/bin/bash

chars=『abcdefghijklmnopqrstuvwxyz』

for (( i=0; i<26; i++ )) ; do

array[i]=

i]=i]

=echo katex parse error: expected '}', got 'eof' at end of input:

done

這裡有趣的地方是 katex parse error: expected '}', got 'eof' at end of input: ,表示從chars字串的 $i 位置開始,獲取 1 個字元。如果將 1 改為 3 ,就獲取 3 個字元啦~ 結果是:

abcbcd

…vxy

xyzyz //沒有足夠字串獲取了

z //沒有足夠字串獲取了

下面介紹將陣列應用到shell環境變數的一些例子。

3、將陣列應用到shell環境變數(1)

複製** **如下:

陣列賦值:

[root@pps ~]# season=(「srping」 「summer」 「autumn」 「winter」)

當你發現賦值錯了,也可以立刻從新賦值糾正,如上面的 spring 被寫成 srping。

重新賦值:(原來的值被重寫)

[root@pps ~]# season=(「spring」 「summer」 「autumn」 「winter」)

檢視一下環境變數:如何起名

[root@pps ~]# set | grep season

season=([0]=「spring」 [1]=「summer」 [2]=「autumn」 [3]=「winter」)

顯示整個陣列:

[root@pps ~]# echo $ 或者 echo $

spring summer autumn winter

顯示某一陣列元素:

[root@pps ~]# echo $

winter

給單個陣列元素賦值:

[root@pps ~]# season[0]=「new_spring」

再檢視一下看陣列:

[root@pps ~]# echo $

new_spring summer autumn winter

清除指定的單個陣列元素:

[root@pps ~]# unset season[2]

清除整個陣列:

[root@pps ~]# unset season

4、將陣列應用到shell環境變數(2)

使用tr命令將檔案中的回車轉換成空格:

深入學習陣列

深入學習一下陣列 從記憶體角度來理解陣列 1 從內在角度講,陣列變數就是一次分配多個變數,而且這多個變數在記憶體中的儲存單元是次相連線的。2 我們分開定義多個變數 譬如inta,b,c,d 和一次定義乙個陣列 int a 4 這兩種定義方法相同點是都定義了4個int型變星,而且這4個變星都是獨立的單...

陣列的深入學習

在以前的學習中,對陣列的認識只是簡單的陣列形式,儲存數,但深入學習其實現機理,發現大有文章,下面簡單表述一下 一 陣列是乙個型別,這個從陣列的定義說起 陣列的定義有兩種方式 以int為例,1.int a 2.int a 第一種定義方法是很多人習慣的,主要是早期的影響,第二種方法才是最適合的定義方法,...

PHP陣列深入學習

首先,php的陣列是鍵值對,不像python或者有些語言,陣列的索引是自增的,php的陣列沒有索引,是鍵,這樣就和有些語言中的字典很像。鍵 key 只能是整數或者字串,不能是別的資料型別 值 value 可以使任意型別的值,比如陣列,整數,浮點數什麼的。較老版本的寫法 array array a a...