數組的使用及簡單練習

一、聲明

普通數組:declare -a ARRAY (不必須聲明,可直接使用)
關聯數組:declare -A ARRAY(必須聲明後纔可使用)
二者不可相互轉化

二、賦值

1、一次賦值一個元素

a[0]=‘abc’
a[1]='123

2、一次賦值全部元素

a=(“a” “b” “c”…)
a=({1…10})
a=(*.sh)

3、只賦值特定元素

a=([0]=“a” [3]=“c”)

4、交互式賦值

read -a ARRAY (用空格隔開)

三、顯示所有數組

declare -a

四、引用

${ARRAY[n]} (若不指定下表,則爲ARRAY[0])
${ARRAY[|@]} (顯示所有)
${#ARRAY[
]}(數組的個數)

五、刪除

刪除單個:

unset ARRAY[n]

刪除整個:

unset ARRAY

六、處理

跳過前n個,取後面m個

${ARRAY[*]:n:m}

例如:跳過前兩個,取後面所有

echo ${ARRAY[*]:2}

七、追加

ARRAY[${#ARRAY[*]}]=value

八、關聯數組(必須先聲明)

**好處:**下標可自定義

declare -A name
name[ceo]=li
name[cto]=zhang
name[coo]=wang

九、小練習

1、求10個隨機數的數組中,最大與最小值
①、非簡化版(自己寫的)

#!/bin/bash
n[0]=$RANDOM
max=${n[0]=$RANDOM}
min=${n[0]=$RANDOM}
for i in {1..9};do
    n[i]=$RANDOM
    if [ ${n[i]} -gt $max ];then
        max=${n[i]}
    elif [ ${n[i]} -lt $min ];then
        min=${n[i]}
    fi
done
    echo ${n[*]}
    echo $max
    echo $min

②、簡化版

#!/bin/bash
for i in {0..9};do
    n[i]=$RANDOM
    [ $i -eq 0 ] && max=${n} && min=${n} && continue
    [ ${n[i]} -gt $max ] && max=${n[i]}
    [ ${n[i]} -lt $min ] && min=${n[i]}
done
    echo ${n[*]}
    echo $max
    echo $min

②、求當前目錄下所有偶下標的行數和

#!/bin/bash
line=0
num=(/data/*)
for i in $(seq 0 $[${#num[*]}-1]);do
    if [ $[$i%2] -eq 0 ];then
        let line+=$(wc -l ${num[i]}|cut -d' ' -f1)
    fi
done
echo "line:$line" 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章