arrays - 使用不带索引的数组名称获取 Bash 中的第一个数组元素,好吗?

标签 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

最佳答案

这是一个 documented行为:

Referencing an array variable without a subscript is equivalent to referencing with a subscript of 0.

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

关于arrays - 使用不带索引的数组名称获取 Bash 中的第一个数组元素,好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49501157/

相关文章:

bash - 如何有条件地将命令的输出重定向到/dev/null?

macos - Mac OS X/usr/bin/time 详细标志

python - 预期的二维数组错误未得到解决

java - 如何更新二维数组中的个别行? ( java )

c - 从 C 中的文件填充二维数组

node.js - 在bash openssl中创建一个base64 md5哈希值,相当于在node.js中创建一个base64 md5哈希值

linux - 奇怪的 ssh 行为 - ssh 在未知位置设置 PROMPT_COMMAND

python - 从 bash 脚本检查 Python 开发文件是否存在

java - 如何创建具有不同实例的对象数组?

javascript - 过滤从当月第一天到当前日期的日期