2107/9/15 週五 centos
今天我給你們分享一波數組,那麼數組是什麼呢? 數組是存儲多個元素的連續的內存空間,至關於多個變量的集合,數組包括數組名和索引,當咱們新建了一個數組以後就能夠使用其中的索引來搞一波事情,既然有索引有編號,數組又是連續的,那麼無序的數組就叫作稀疏數組,並且咱們的索引也能夠支持自定義的格式,沒有非要數值,123的去排序,可是這個功能只有bash4.0才能夠支持,那問題來了,怎麼查看咱們的bash版本呢?數組
據我所知,咱們的centos6,7都是bash4.0以上的,而centos5則不能支持bash,即爲關聯索引。
bash
既然咱們提到了變量,那咱們確定都知道,使用變量是須要提早定義的,那麼咱們的數組是怎麼定義的呢?ide
declare -a ARRAY_NAME | 數組 |
declare -A ARRAY_NAME | 關聯數組 |
注意:二者不可相互轉換,並且當咱們刪除數組中的某元素--->致使稀疏格式
spa
ARRAY_NAME=([idx_name1]='val1' [idx_name2]='val2‘...)
注意:關聯數組必須先聲明再調用blog
定義以後就是咱們的數組賦值,賦值的時候分爲四種
排序
(1) 一次只賦值一個元素;
ARRAY_NAME[INDEX]=VALUE
weekdays[0]="Sunday"
weekdays[4]="Thursday"
(2) 一次賦值所有元素:
ARRAY_NAME=("VAL1" "VAL2" "VAL3" ...)
(3) 只賦值特定元素:
ARRAY_NAME=([0]="VAL1" [3]="VAL2" ...)
(4) 交互式數組值對賦值
read -a ARRAY索引
既然能夠賦值,那咱們的查詢就很easy了,使用declare -a內存
這些都沒有什麼好說的,咱們就直接進入肉戲,引用數組,若是是咱們的引用單個數組的某個元素,咱們能夠使用${ARRAY_NAME[INDEX]}注意:省略[INDEX]表示引用下標爲0的元素get
引用數組中的元素:
數組切片: ${ARRAY[@]:offset:number}
offset: 要跳過的元素個數
number: 要取出的元素個數
取偏移量以後的全部元素
${ARRAY[@]:offset}
向數組中追加一些元素:ARRAY[${#ARRAY[*]}]=value
俗話說的好,光說不練假把式,咱們在下面有個小題,就當是咱們課後的小擴展:
練習:生成10個隨機數保存於數組中,並找出其最大值和最小值。
#!/bin/bash
declare -a rand
for ((i=0;i<10;i++));do
rand[$i]=$RANDOM
[ $i -eq 0 ] && max=${rand[$i]} && min=$min && continue
[ ${rand[$i]} -gt $max ] && max=${rand[$i]} && continue
[ ${rand[$i]} -lt $min ] && min=${rand[$i]}
done
echo "All rand are ${rand[@]}"
echo "Max is $max"
echo "Min is $min"
好了,今天的分享就到這,本週剛轉戰的51CTO,內容和時間都有些倉促,不足之處,請多多指教。