Bash关联数组增量值奇怪的行为

时间:2017-08-18 12:41:24

标签: arrays bash associative-array

我想在bash中增加关联数组中的值,但我发现了一些奇怪的行为。如果value为0,则错误代码为1,否则为0.代码段:

#!/bin/bash

declare -A arr

key="create|server"

arr["$key"]=0

(('arr["$key"]'++))
echo "err_code: $?" # 1, WTF

(('arr["$key"]'++))
echo "err_code: $?" # 0

你知道导致这种奇怪行为的原因吗?

2 个答案:

答案 0 :(得分:3)

发布增量。表达式的计算结果为0( false ),返回状态为1.使用 pre -increment:

(( ++arr["$key"] ))

如果你想避免这种情况。表达式将计算为1( true ),返回状态为0。

答案 1 :(得分:1)

来自' man bash'

A