示例
# 定义数组,等号两边不要有空格 list=( "A" "B" ) # 数组长度 echo ${#list[@]} # 2 # 获取数组元素 echo ${list[1]} # B # 输出所有值 echo ${list[@]} # A B # 循环打印数组 for var in ${list[@]}; do echo "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 2 echo ${arr[*]:1:3} # 2 3 4 echo ${arr[@]:1} # 2 3 4 5
示例
字符串解析
# demo.sh arg=$1 # 拆分字符串参数为数组 # python@3.7.0 => ('python' '3.7.0') arr=(`echo $arg | tr '@' ' '`) # 如果数组长度为2,则取第二个参数为版本号 if [ ${#arr[@]} -eq 2 ]; then name=${arr[0]} version=${arr[1]} else name=$arg version='' fi echo $name echo $version
运行示例
$ bash demo.sh python python $ bash demo.sh python@3.7.0 python 3.7.0
参考