示例
# 定义数组,等号两边不要有空格list=("A""B")# 数组长度echo ${#list[@]} # 2# 获取数组元素echo ${list[1]} # B# 输出所有值echo ${list[@]} # A B# 循环打印数组for var in ${list[@]}; doecho "var = ${var}"done# 输出:# var = A# var = B
字符串转数组
方式一
# 字符串转数组str="A B C"arr=($str) # 数组长度echo ${#arr[@]} # 3# 所有数组元素echo ${arr[@]}# A B C
方式二
# 字符串转数组str="A,B,C"arr=(`echo $str | tr ',' ' '`) # 数组长度echo ${#arr[@]} # 3# 所有数组元素echo ${arr[@]}# A B C
列表切片
arr=(1 2 3 4 5)# 输出整个数组echo ${arr[@]} # 1 2 3 4 5# 获取${ 数组名[@或*] :起始位置:长度}的值echo ${arr[@]:0:2} # 1 2echo ${arr[*]:1:3}# 2 3 4echo ${arr[@]:1}# 2 3 4 5
示例
字符串解析
# demo.sharg=$1# 拆分字符串参数为数组 # python@3.7.0 => ('python' '3.7.0')arr=(`echo $arg | tr '@' ' '`)# 如果数组长度为2,则取第二个参数为版本号if [ ${#arr[@]} -eq 2 ]; thenname=${arr[0]}version=${arr[1]}elsename=$argversion=''fiecho $nameecho $version
运行示例
$ bash demo.sh pythonpython$ bash demo.sh python@3.7.0python3.7.0
参考
Shell脚本list史上最全教程
shell-------数组遍历、切片、替换等操作