bash 数组
2020-05-02 本文已影响0人
JSTZ
创建
arr=(a b "c d") # 创建包含 3 个元素的数组
注意,
=
两边不能有空格,不同值中间使用空格分割,而不是逗号 ','。
读取
数组下标从 0 开始,用 echo ${#array[@]}
或者 echo ${#array[*]}
获取长度。
读单个元素
${array[0]} # 访问下标为 0 的元素,如果超出范围返回空
${array} # 同 ${array[0]}
读一个子集
${array[@]} # 所有得值
${array[@]:2:3} # 从下标 2 开始取 3 个值
${array[@]::3} # 从 下标 0 开始最多取 3 个值
${array[@]:2} # 从下标 2 开始及后面所有得值
- 以上的
@
都可以用*
代替效果一样,除了在整个表达式两侧加""
时,@
是把每个值看着个体,而*
是把所有值看成一个整体。 - 返回的值不会再进行求值,就是说如果有个值是
$a
,输出依然是$a
,而不会再取变量a
的值。
修改
array[0]='abc' # 覆盖元素
array=("${arrya[@]}" "app") # 追加元素
array=("${array[@]::${#array[@]}-1}") # 删除最后一个元素