У меня есть этот ассоциативный массив:Как прирастить ассоциативный массив в Bash
lettres['A']=0
…(from 'A' to 'Z')…
lettres['Z']=0
Мой вопрос прост: Как получить значение одного элемента и увеличить его? Я пробовал следующее:
lettres[$char]=${lettres[$char]}++
Но это терпит неудачу, в результате получается «0 ++++++++». Как я могу легко увеличить значение?
EDIT: Подробнее Код:
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
Вместо того, чтобы говорить «Нет, не работает ...», а затем размещать какой-то код без дополнительного комментария, делать проверочный пример, указывать на соответствующие строки, говорить, что вы пытались, что происходит и что вы ожидали произойдет. Например. «lettres [F] на этой строке 3. Я попробовал ваше предложение на следующей строке здесь, но потом все равно 3, пока я ожидал, что это будет 4" –