【发布时间】:2016-10-19 21:14:52
【问题描述】:
创建一个简单的 bash 堆栈脚本后,我遇到了与 bash 数组相关的错误。
来自 Bash 手册:
如果分配了任何变量,则会自动创建索引数组 使用语法:
name[subscript]=valuename[subscript]=value 下标被视为算术运算 必须计算为数字的表达式。如果下标计算为 小于零的数字,它被用作从大于一的偏移量 数组的最大索引(所以 -1 的下标是指最后一个 数组元素)。
在我的本地机器上一切正常,不幸的是我的服务器环境略有不同。
负下标适用于 Ubuntu 14.04 / GNU bash 版本 4.3.11(1)。但是,当我尝试使用 GNU bash 版本 4.2.46(1) 在我的服务器上运行相同的脚本时,我遇到了以下错误:
line 46: [-1]: bad array subscript
我尝试创建一个数组并直接从终端(不在脚本内部)调用最后一个元素,它起作用了:
user@local:~$ arr=( 1 2 3 4 5 )
user@local:~$ echo ${arr[-1]}
5
我在这里有点困惑。有什么解决方案或解决方法吗?
【问题讨论】:
标签: arrays linux bash shell subscript