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

最后修改:2018 年 05 月 04 日
喜欢就给我点赞吧