Linux中数组本人可能用的相对较少,可是会常常碰见,也容易忘记,就顺便记录下来吧shell
数值类型的数组:一对括号表示数组,数组中元素之间使用“空格”来隔开数组
arr=(1 2 3 4 5)函数
字符串类型数组:一样,使用一对括号表示数组,其中数组中的元素使用双引号或者单引号包含,一样使用“空格”来隔开blog
arr=('a' 'b' 'c')字符串
数组的任何元素均可以用${arr[下标]}来引用,花括号是必须的,以免和路径扩展冲突。
数组的操做class
以数值型数组为例:arr=(1 2 3 4 5)变量
1.计算数组的长度扩展
len=${#arr[*]}遍历
二、输出全部数组的值引用
若是 [下标] 是@或是*,它扩展为arr的全部成员。这两种下标只有在双引号中才不一样。在双引号中,${name[*]}扩展为一个词,由全部数组成员的值组成,
用特殊变量IFS的第一个字符分隔数组成员;${arr[@]}将arr的每一个成员扩展为一个词。 若是数组没有成员,${arr[@]} 扩展为空串。
三、输出数组的单个元素值(数组下标值从0开始,因此5值为空)
四、在shell脚本中数组和read的结合使用
五、数组结合函数和read一块儿使用 使用$@和”$@“以及$*
输出结果
使用"$*"时
输出结果
六、来点新的(鬼知道有啥用)
向函数传递的参数是$arg1,咱们知道不能向函数传递一个数组,而应该是遍历的数组的值,因此在arg1赋值这里,不能写arg1=(${echo ${myarray[*]})),
这样至关于arg1是一个数组了,而arg1=$(echo ${myarray[*]})返回的则是1 2 3 4 5单个的输出值;函数的返回同理,返回的是单个的数值,接受的时候加上(),组成数组
输出结果
七、结合read传递参数型(稍微灵活点,更加不知道有什么鬼用,鸟改哈就阔以啦,估计不多会用这些吧)
输出结果
正好看到这些,研究了好久,起初都是一脸懵逼,写出来不知道有没有啥子用,我工做的地方好像都没用到额,有点尴尬!!!