使用没有索引的数组名称获取Bash中的第一个数组元素,好吗?

Buo*_*uoy 2 arrays bash

当使用数组名称或使用数组语法访问变量时,GNU Bash 4.4在访问第一个元素或仅访问数组元素时似乎很宽容.当变量var ='Value'时,$ {var [0]}和$ {var [@]}都返回"Value".

当只需要一个变量时,我可以通过使用其中一个数组作为变量来简化我的代码.对于这个软件包,我更关心的是它没有使用下一个Bash更新而不是可移植性.

编写使用变量语法访问数组的第一个元素的代码是否安全?

declare -a foo='Value'
declare -p var
declare -a var=([0]="Value")
echo ${foo}
Value
Run Code Online (Sandbox Code Playgroud)

Bar*_*mar 5

这是一个记录在案的行为:

引用不带下标的数组变量等同于使用下标0引用.

但是,我建议您仍然使用下标,以使您的代码更清晰.