本文為大家介紹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...