我想在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
你知道导致这种奇怪行为的原因吗?
答案 0 :(得分:3)
发布增量。表达式的计算结果为0( false ),返回状态为1.使用 pre -increment:
(( ++arr["$key"] ))
如果你想避免这种情况。表达式将计算为1( true ),返回状态为0。
答案 1 :(得分:1)
来自' man bash'
A