BASH: 将数字添加到数组的元素
BASH: Adding numbers to an element of array
我正在学习 shall 脚本,我想知道是否有任何方法可以将数字添加到数组的元素,以便将数字添加到元素而不是追加它。
num=1
declare -A array
array[0]+=$num
array[0]+=$num
echo ${array[0]}
显然,结果将是“11”而不是 2。我知道这个问题可能存在于社区中,但我找不到它可能是因为我不知道如何命名问题。
你可以使用算术上下文 ((..))
:
num=1
declare -A array
((array[0]+=$num))
((array[0]+=$num))
echo ${array[0]}
2
给数组 integer attribute 启用“裸”算术:
num=1
declare -Ai array
array[0]+=$num
array[0]+=num # also works without expanding the variable
# because this is arithmetic evaluation
declare -p array
产出
declare -Ai array=([0]="2" )
-A
定义了一个 associative 数组。 -i
也适用于 -a
numerically-indexed 数组。
我正在学习 shall 脚本,我想知道是否有任何方法可以将数字添加到数组的元素,以便将数字添加到元素而不是追加它。
num=1
declare -A array
array[0]+=$num
array[0]+=$num
echo ${array[0]}
显然,结果将是“11”而不是 2。我知道这个问题可能存在于社区中,但我找不到它可能是因为我不知道如何命名问题。
你可以使用算术上下文 ((..))
:
num=1
declare -A array
((array[0]+=$num))
((array[0]+=$num))
echo ${array[0]}
2
给数组 integer attribute 启用“裸”算术:
num=1
declare -Ai array
array[0]+=$num
array[0]+=num # also works without expanding the variable
# because this is arithmetic evaluation
declare -p array
产出
declare -Ai array=([0]="2" )
-A
定义了一个 associative 数组。 -i
也适用于 -a
numerically-indexed 数组。