bash之數組增刪改查
阿新 • • 發佈:2017-08-27
linux bash array
數組切片:${array_name[*]:offset:number}
offset:要跳過的元素個數
number:要取出的元素個數,取偏移量之後的所有元素:${array_name[*]:offset}
練習題:
練習1:生成10個隨機數保存於數組中,並找出最大值和最小值
bash之數組-增刪改查
簡介:
存儲多個元素的連續的內容空間
數組名:自定義
索引:編號從0開始,屬於數值索引:
註意:索引也可支持使用自定義的格式,而不僅僅是數值格式;bash的數組支持稀疏格式:
增
聲明數組:declare -a array_name
關聯數組:declare -A array_name
數組元素的賦值方式
1)一次只賦值一個元素:
array_name[INDEX]=value weekdays[0]="sundary"
2)一次賦值全部元素
array_name=("val1" "val2" "val3" ...)
3)只賦值特定元素
array_name=([0]="val1" ...)
4)交互式賦值元素
read -a array_name
向數組中追加元素(按照下標號依次添加,不能斷):
array_name[${array_name[*]}]=xxxxxx
關聯數組:
declare -A array_name array_name=([index_name1]="val1" [index_name2]="val2" ...)
刪
刪除數組中的某元素:
unset array[INDEX]
改
1)
array=("a" "b" "c" "d") echo ${array[*]} a b c d echo ${array[0]} a array[0]="z" echo ${array[*]} z b c d
2)
調用方法是:${數組名[@或*]/查找字符/替換字符} 該操作不會改變原先數組內容,如果需要修改,可以看上面例子,重新定義數據。
a=(1 2 3 4 5) echo ${a[@]/3/100} 1 2 100 4 5 echo ${a[@]} 1 2 3 4 5 a=(${a[@]/3/100}) echo ${a[@]} 1 2 100 4 5
查
引用數組中的元素:${數組名[索引]}
引用第一個元素
註意:省略[index]表示引用下標為0的元素
引用所有所有元素
數組的長度(數組中元素的個數):${#array_name[*或者@]}
取出指定元素
${array_name[1]}
offset:要跳過的元素個數
number:要取出的元素個數,取偏移量之後的所有元素:${array_name[*]:offset}
練習題:
練習1:生成10個隨機數保存於數組中,並找出最大值和最小值
max=0 for I in {1..9} do rand[$I]=$RANDOM && [ ${rand[$I]} -gt $max ] && max=${rand[$I]} echo ${rand[$I]} done echo max:$max
練習2:定義一個數組,數組中的元素是/var/log目錄下以.log結尾的文件的名字,要統計其下標(【】)為偶數的文件中的行數之和
思路:
整數運算:
{ a=1 b=2 c=$[$a+$b] or c=$(expr $a + $b) } { file=(/var/log/*.log) echo ${#file[*]} echo ${file[*]} }
練習3:生成10個隨機數,升序或降序排序:
本文出自 “zhaoyfcomeon-成長之路” 博客,請務必保留此出處http://zhaoyfcomeon.blog.51cto.com/8429349/1959588
bash之數組增刪改查