如何从BASH中的数组项中减去1?
为了好玩,我在BASH中有一个附带项目,我有以下代码片段(如何从BASH中的数组项中减去1?,bash,Bash,为了好玩,我在BASH中有一个附带项目,我有以下代码片段(ARRAY[0]is 8): 但是,返回时会出现以下错误: line 16: 8[1]: command not found 我刚开始在BASH中工作,所以我可能犯了一个明显的错误,但我一直在寻找这样一个问题的答案,但没有结果。最小的变化就是: ARRAY[0]=$(( ${ARRAY[0]} - 1 )) 注: 在要分配给的变量的名称之前没有$(foo=,而不是$foo=) 作业上的=周围没有空格 $(())是输入数学上下文(并扩
ARRAY[0]
is 8):
但是,返回时会出现以下错误:
line 16: 8[1]: command not found
我刚开始在BASH中工作,所以我可能犯了一个明显的错误,但我一直在寻找这样一个问题的答案,但没有结果。最小的变化就是:
ARRAY[0]=$(( ${ARRAY[0]} - 1 ))
注:
- 在要分配给的变量的名称之前没有
($
,而不是foo=
)$foo=
- 作业上的
周围没有空格=
是输入数学上下文(并扩展到该操作的结果)的语法$(())
- 最小的变化就是:
ARRAY[0]=$(( ${ARRAY[0]} - 1 ))
注:
- 在要分配给的变量的名称之前没有
($
,而不是foo=
)$foo=
- 作业上的
周围没有空格=
是输入数学上下文(并扩展到该操作的结果)的语法$(())
=
周围有空格。这根本不是特定于数组的。顺便说一句,您会发现这一错误和其他错误……正如良好实践说明——所有caps变量名都用于对操作系统或shell有意义的变量,而POSIX规范保留了至少一个小写字符的名称供应用程序使用。请参阅,第四段。(并且==
不是[]中的标准字符串比较运算符)
--这只是一个=
。Bash支持将=
作为扩展,但当有人试图在使用ash或dash的平台上使用/bin/sh
运行您的代码时,它会咬到您;请参阅。引用以避免错误,并更改变量名,这将使第一行在[“$alive”=true]
)。在bash中的任何作业中,都不允许在=
周围有空格。这根本不是特定于数组的。顺便说一句,您会发现这一错误和其他错误……正如良好实践说明——所有caps变量名都用于对操作系统或shell有意义的变量,而POSIX规范保留了至少一个小写字符的名称供应用程序使用。请参阅,第四段。(并且==
不是[]中的标准字符串比较运算符)
--这只是一个=
。Bash支持将=
作为扩展,但当有人试图在使用ash或dash的平台上使用/bin/sh
运行您的代码时,这会咬到您;请参阅。引用以避免错误,并更改变量名,这将使第一行在[“$alive”=true]
时生效。