bash僅支持一維數組,類型聲明:
declare -i : 表示數值
declare -a :表示普通數組(默認,可不用聲明類型)
declare -A :表示關聯數組(必須聲明類型,bash需4.0以上版本才支持,可通過bash –version查看版本)
一、普通數組(用數字為下標)
1.1數組賦值(修改值)方式
a).單個元素賦值
a[0]=1 a[2]=2
b).一次對全部元素賦值
a=(1 2 3)
c).按索引進行賦值
a=([0]=apple [1]=banana [2]=orange)
d).命令替換
a=(/var/log/*.log)
e).用戶輸入
read -a array
1.2數組長度
echo ${#array[@]} 數組的長度(建議查看方式) echo ${#array[*]} 數組的長度
用以下示例來區分兩者區別:
執行結果如下($*用雙引號引起來后,所有的參數是一個串,查看所有元素時建議用$@):
1.3其它常用
echo {array[2]} 下標為2的元素值(元素從0開始計數) array2=(${array1[@]}) 數組復制 echo ${!array[@]} 獲取所有的下標
二、關聯數組(可用非數字字符做下標,普通數組功能在關聯數組下都可實現)
關聯數組需事先聲明,方法為:declare -A array
示例:
[root@localhost ~]# declare -A test [root@localhost ~]# test=([apple]=a [banana]=b [orange]=o) [root@localhost ~]# echo ${test[@]} o a b [root@localhost ~]# echo ${!test[@]} orange apple banana [root@localhost ~]#
三、數組切片
${array[@]:offset:number} offset: 偏移的元素個數 number: 取出的元素的個數 ${array[@]:offset} 取出偏移量后的所有元素 ${array[@]} 取出所有元素
示例:
[root@localhost ~]# array=(1 2 3) [root@localhost ~]# echo ${array[@]} 1 2 3 [root@localhost ~]# echo ${array[@]:1} 2 3 [root@localhost ~]# echo ${array[@]:1:1} 2
四、刪除數組元素
unset ARRAY[index]
示例:
[root@localhost ~]# echo ${array[@]} 1 2 3 [root@localhost ~]# unset array[1] [root@localhost ~]# echo ${array[@]} 1 3
五、綜合示例
示例1:寫一個腳本,生成10個隨機數,保存至數組中;而后顯示數組下標為偶數的元素;
方法一:
方法二:
示例2:復制一個數組中下標為偶數的元素至一個新數組中
示例3:生成10個隨機數,升序排序
示例4:打印九九乘法表
原創文章,作者:老鼠上了貓,如若轉載,請注明出處:http://www.www58058.com/7109
實戰的案例非常有不錯,很有吸引力
@stanley:謝謝!