标签:
数组的定义组作为一种特殊的数据结构在任何一种编程语言中都有它的一席之地,当然bash shell也不例外。本文就shell数组来做一个小的总结。在这里只讨论一维数组的情况,关于多维数组(事实上,你得用一维数组的方法来模拟),不涉及。这里包括数组的复制,计算,删除,替换。
数组的定义方式:
1. array[key]=value # arr[0]="hello" arr[1]="world"
2. array=( value1 value2 ... ) # arr=( "hello" "world" ) 注意括号前面要有空格
3. array=( [1]=value1 [2]=value2 ) # arr=( [0]="hello" [1]="world" )
- 单个访问数组中元素
${array[key]} # ${arr[1]}
- 所有数组中的元素
用${数组名[下标]} 下标是从0开始 下标是:*或者@ 得到整个数组内容
${array[*或@]} #${arr[*]}
- 计算数组的长度
用${#数组名[@或*]} 可以得到数组长度
${#array[*]}
- 数组的提取
直接通过 ${数组名[@或*]:起始位置:长度} 切片原先数组,返回是字符串,中间用“空格”分开,因此如果加上”()”,将得到切片数组
arr=( 1 2 3 4 5 6 7 )
${arr[@]:0} # 表示所有元素
${arr[@]:1} # 除掉第一个元素后所有元素
${arr[@]:0:2} # 从0开始取2个
- 数组元素的删除
直接通过:unset 数组[下标] 可以清除相应的元素,不带下标,清除整个数据。
unset arr[1]
- 数组元素的替换
${数组名[@或*]/查找字符/替换字符} 该操作不会改变原先数组内容
arr=( 1 2 3 4 5 )
echo ${arr[@]/2/10} # 结果为 1 10 3 4 5
arr=(${arr[@]/2/10}) # 改变原数组内容
echo $arr # 1 10 3 4 5
标签:
原文地址:http://www.cnblogs.com/xuxublogs/p/4711232.html