1. 程式人生 > >shell腳本之數組

shell腳本之數組

關聯數組 fff shell 最大 echo 註意 rand 元素 一個

變量:存儲單個元素的內存空間。

數組:存儲多個元素的連續的內存空間。

  數組名:整個數組只有一個名字;

  數組索引:編號從0開始

    數組名[索引];

    引用數組中的某個元素:${ ARRAY_NAME [ INDEX ] }

      註意:引用變量值必須加上花括號{ }。

聲明數組:

  declare -a ARRAY_NAME:聲明索引數組。

  declare -A ARRAY_NAME:聲明關聯數組。

數組中元素的賦值方式:

  (1)一次只賦值一個元素;

    ARRAY_NAME[INDEX]=value

  (2)一次賦值全部元素;

    ARRAY_NAME=("VAL1" "VAL2" "VAL3" .....)

     註意: 元素與元素之間使用空格字符隔開

  (3)只賦值特定元素;這種稱之為稀疏格式的數組。

    ARRAY_NAME=([0]="VAL1" [3]="VAL3" ........)

  (4)read也可以給數組賦值

    read -a ARRAY_NAME

演示:

技術分享圖片

技術分享圖片

如何引用數組?

引用數組中的元素:${ARRAY_NAME[INDEX]}

  註意:引用時,只給數組名,表示引用下標為0的元素;

技術分享圖片

引用數組中的所有元素:${ARRAY_NAME[*]}或者${ARRAY_NAME[@]}

技術分享圖片

求數組的長度(數組中元素的個數):${#ARRAY_NAME[@]}或者${#ARRAY_NAME[*]}

技術分享圖片

案列:生成10個隨機數,並找出其中最大值和最小值

#!/bin/bash
#
declare -a rand
declare -i max=0
for i in {1..10};do
        rand[$i]=$RANDOM
        echo "rand[$i]: ${rand[$i]}"
        [ ${rand[$i]} -gt $max ] && max=${rand[$i]}
done
echo "max: $max"

查看一下結果:

技術分享圖片

shell腳本之數組