Shell中数组的操作

写在前面

看一下Shell中数组的几种操作:定义、遍历、修改、删除、参数传递操作

定义

Shell中对于数组的定义直接使用(),元素之间使用空格隔开即可

array=(1 2 3 4 5)
array=(abc def gh)

取得数组的值:取出所有的数值以及取出某个位置上的数值

echo ${array[@]}
echo ${array[*]}
echo $array[0]

获取长度

echo ${#array[@]}
echo ${#array[*]}

如果数组作为参数传递到函数中,还可以使用:

echo $#

修改

直接修改某点上的数值,如果下标超出数组长度,则修改的数字会插入到数组的最后

array[2]=4

删除

分别为删除某一节点的数值,以及删除整个数组 

unset array[2]
unset array

数组遍历

count=0
for value in ${array[@]}
do
    echo "the $count num is: $value"
    $count=$[ $count + 1 ]
done

作为参数

如果作为参数传递到函数中,那么只能够由#@来获取参数列表,在函数中将这些重组为数组,实现为:

function fun {
    local newarray=($(echo #@))
    for value in ${newarray[@]}
    do
        echo $value
    done
}

array=(1 2 3 4 5)
fun ${array[@]}

在newarray=($(echo #@))中,最外层括号就表示将输出的参数中心转换为数组 

如果想要将数组来做返回值呢?

那么就使用Shell中输出作为返回值即可,在函数外将输出转换为数组,实现为:

function fun {
    local array=(5 6 7 8)
    echo ${array[@]}
}

rearray=($(fun))
echo ${rearray[@]}

栗子

参考博客

https://www.cnblogs.com/Joke-Shi/p/5705856.html

猜你喜欢

转载自blog.csdn.net/li1615882553/article/details/84073548