bash与zsh中array的区别

前言

在使用时发现两者的不同,开贴记录一下

区别

定义

定义上两者相同

索引方法

bash一定要使用大括号
zsh可以像变量一样使用数组,不需要括号,但也兼容bash的写法

下标

bash从0开始,zsh从1开始

举例

bash

1
2
3
4
5
6
7
8
9
a=('a' 'b' 'c' 'd')
echo ${a[@]}
# a b c d

echo ${a[0]}
# a

echo $a # 只能显示第一个元素,因此不能使用for i in $a, 而是for i in ${a[@]}
# a

zsh

1
2
3
4
5
6
7
8
9
10
11
12
a=('a' 'b' 'c' 'd')
echo $a
# a b c d

echo $a[1]
# a

echo ${a[@]} # 兼容bash写法
# a b c d

echo ${a[1]}
# a