Shell 原生支持数组,虽然支持的不好。
创建数组、写入数组元素
使用 (e1 e2 ..)
语法创建数组:
arr=(a b c)
从字符串创建数组:
str="a b c"arr=($str)
使用下标语法创建数组或写入数组元素:
arr[0]=aarr[1]=barr[2]=c
如果数组下标使用的不连续,则对跳过的下标赋空值:
arr[0]=aarr[2]=cecho ${arr[1]} #
读取数组、获取数组长度
arr=(a b c)# 获取单个元素echo ${arr[0]} # a# 获取全部元素echo ${arr[@]} # a b c# 获取数组长度len=${#arr[@]} # 3
通过 for in
语法使用数组:
arr=(a b c)for item in ${arr[@]}; do echo "$item" # a, b, cdone
清除数组、清除数组元素
arr=(a b c)# 清除数组元素unset arr[1]echo ${#arr[@]} # 2echo ${arr[@]} # a cecho ${arr[1]} ## 清除数组unset arrecho ${#arr[@]} # 0echo ${arr[@]} #
分片、替换
分片:
arr=(a b c)clip=${arr[@]:1:2}echo ${#clip[@]} # 1 注意:只切片得到的不是数组subarr=(${arr[@]:1:2})echo ${#subarr[@]} # 2
替换:
arr=(a b c)arr=(${arr[@]/b/c}) # a c cecho ${arr[@]/c/d} # a d d