【发布时间】:2012-01-01 23:51:21
【问题描述】:
我正在尝试使用以下代码将数组中的值增加 1,但是我遇到了一些问题。请问有人可以帮我吗?
myArray[$position]=((${myArray[$position]}++))
【问题讨论】:
-
什么是unix数组?你是在这里写脚本还是什么?
-
正确 - 我正在编写一个 bash 脚本
我正在尝试使用以下代码将数组中的值增加 1,但是我遇到了一些问题。请问有人可以帮我吗?
myArray[$position]=((${myArray[$position]}++))
【问题讨论】:
试试这个
myArr[3]=7
(( myArr[3]++ ))
echo ${myArr[3]}
# output
8
(( .... )) 可以执行 bash/ksh 的数学运算,并且内部引用的变量不需要像您的示例中那样传递出去,您可能正在考虑类似的构造 var=$(( ... MathStuff ...)) OR var=$( ... stringStuff ... )(注意 ' $' 在开头的括号之前)。
还要注意,在(( ... )) 中,您不需要对任何数学变量(如$pct 或$counter)使用前导“$”。如果您使用脚本的参数或 $1、$2、... $N 之类的函数,那么您需要使用 $,因此使用 $1 的值,而不仅仅是“1”。感谢@ChrisDown 的提醒!
我希望这会有所帮助。
【讨论】:
$ 来引用它们以强制上下文($1、$2 ... $N)。
myArr[3] 在更新前是0。
let myArr[3]++。
增量和更新:
array[1]=$((array[1]++))
【讨论】: