shell数组深入解析

Posted 欧阳图图

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell数组深入解析相关的知识,希望对你有一定的参考价值。

数组用法

(1)从0开始 
(2)shell只支持一维数组
(3) 数组内元素类型可以不同
(4)长度不固定
 1 #!/bin/bash
 2 
 3 #数组定义: arr=(1 2 3 4 5)
 4 arr[1]=99
 5 #给指定元素赋值
 6 arr=([2]=10 [4]=2 [5]=34)
 7 
 8 # ${arr[index]} 获取数组指定元素
 9 echo ${arr[2]}
10 echo arr[2] #不能添加
11 echo ---------
12 
13 # ${arr[*]} 或 ${arr[@]} 使用@或者*可以获取数组所有元素
14 echo ${arr[*]}
15 echo ${arr[@]}
16 echo ---------
17 
18 #获取数组长度
19 #获取字符串的长度是 ${#str} 同理数组长度为 ${#arr[*]}
20 echo ${#arr[*]}
21 echo ${#arr[@]}
22 echo ---------
23 
24 #数组添加元素
25 arr[1]=88
26 echo ${arr[@]}
27 echo ---------
28 
29 #数组删除元素
30 unset arr[5]
31 echo ${arr[@]}

 

#!/bin/bash
#数组合并
#利用@ *将数组扩展成列表再合并
#new=(${arr1[*]} ${arr2[*])
#new=(${arr1[@]} ${arr2[@])

arr1=(10 20 30 40 50)
arr2=(10 12 13 14 15)
new=(${arr1[@]} ${arr2[@]})
echo ${new[*]}

#删除数组 unset
unset arr1[0]
echo ${arr1[*]} #删除某下标元素
unset arr2
echo ${arr2[*]} #删除整个数组

 

以上是关于shell数组深入解析的主要内容,如果未能解决你的问题,请参考以下文章

解析:JSON 文本没有以数组或对象开头,并且允许未设置片段的选项

Swift之深入解析子数组提取的性能优化

Swift之深入解析“泛型”的底层原理

Shell全解析:字符串变量和数组变量

Shell编程入门

ios - Heroku 和 MongoDb 上的自定义解析服务器错误 3080:JSON 文本没有以数组或对象开头,并且允许未设置片段的选项