linux shell陣列深入學習理解

零三鄧何芯桃379發表於2019-05-08

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

計算陣列元素個數:

${#array[@]} 或者 ${#array[*]}

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

引用陣列:

複製程式碼 程式碼如下:

echo ${array[n]}

遍歷陣列:

複製程式碼 程式碼如下:

filename=(ls)

for var in ${filename[@]};do

echo $var

done

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

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

複製程式碼 程式碼如下:

#!/bin/bash

i=0

n=5

while [ “$i” -lt $n ] ; do

echo “Please input strings …expr $i + 1"

read array[i]b=i]b=i]b={array[KaTeX parse error: Expected 'EOF', got '}' 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]={chars:$i:1}

echoKaTeX parse error: Expected '}', got 'EOF' at end of input: {array[i]}

done

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

abc

bcd

vxy

xyz

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

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 ${SEASON[*]} 或者 echo ${SEASON[@]}

Spring Summer Autumn Winter嬰兒起名

顯示某一陣列元素:

[root@pps ~]# echo ${SEASON[3]}

Winter

給單個陣列元素賦值:

[root@pps ~]# SEASON[0]=“New_Spring”

再檢視一下看陣列:

[root@pps ~]# echo ${SEASON[*]}

New_Spring Summer Autumn Winter

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

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

清除整個陣列:

[root@pps ~]# unset SEASON

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

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


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69918221/viewspace-2643669/,如需轉載,請註明出處,否則將追究法律責任。

相關文章