1
2
3
可见,使用引号空格法构造的数组在使用标准for循环时把数组当成了一个元素,而`for..in`形式则正确输出。
## 三、其他用法
### 3.1 获取数组长度
获取数据长度有两种形式:`${{ ''{#'' }}arr[@]}`和`${{ ''{#'' }}arr[*]}`,通过`引号空格法`创建的数组长度为`1`。
! /bin/bash
arr1=(1 2 3)
arr2="1 2 3"
echo ${#arr1[@]} # 3
echo ${#arr1[*]} # 3
echo ${#arr2[@]} # 1
echo ${#arr2[*]} # 1
### 3.2 删除数组和数组元素
**删除数组元素**
arr=(1 2 3)
unset arr[1]
echo "len(arr1): "${#arr[@]}
for i in ${arr[@]}
do
echo $i
done
输出:
len(arr1): 2
1
3
**删除数组**
unset arr
### 3.3 切片
shell数组有类似python和golang中的数组切片功能:
arr3=(0 1 2 3 4 5 6 7 8 9)
echo ${arr3[@]:3:5}
输出:
3 4 5 6 7
此处评论已关闭