gpt4 book ai didi

arrays - 如何在 Bash 中递增关联数组

转载 作者:行者123 更新时间:2023-12-05 08:58:06 26 4
gpt4 key购买 nike

我有这个关联数组:

lettres['A']=0
…(from 'A' to 'Z')…
lettres['Z']=0

我的问题很简单:如何获取一个元素的值并递增它?我尝试了以下方法:

lettres[$char]=${lettres[$char]}++

但它失败了,因为结果是 «0++++++++»。我怎样才能轻松增加值(value)?

编辑:更多代码:

while (( i++ < ${#word} )); do
#$char current char
char=$(expr substr "$word" $i 1)
if [[ "${mot[@]}" =~ "${char} " || "${mot[${#mot[@]}-1]}" == "${char}" ]]; then
#char is currently in array $mot -> skipping
echo 'SKIPPING'
else
#Char is not in array $mot -> adding + incrementing lettres
((lettres[char]++))
echo ${lettres[$char]}
#Adding to $mot
mot[${#mot[@]}]=$char
fi
echo "<$char>"
done

最佳答案

使用 bash 版本 4 及更高版本,这会起作用:

$ declare -A lettres
$ char=B
$ ((lettres[$char]++))
$ echo "${lettres['A']}"
0
$ echo "${lettres['B']}"
1

(( )) 强制 arithmetic context ,您可以在其中递增数组元素的值。请注意,它也是 recommended to use declare -A以保证与标准索引数组的最大向后兼容性。

关于arrays - 如何在 Bash 中递增关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26391578/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com