我想在变量名中使用一个变量,但不知道如何使用
if [some condition]; then
id="A"
else
id="B"
fi
${id}_count=$((${id}_count + 1))
如果满足条件,则为
A_count=$(A_count + 1))
或者如果条件不满足
B_count=$(B_count + 1))
${id}
显然不起作用。我只是这样尝试,因为它在字符串中是这样工作的。
(不,这不是我想在其中使用$id的唯一一行。否则我会直接将其放入if条件中。(
它如何在变量名中工作?
谢谢,Patrick
不要使用eval。您可能不遵循此建议,并执行:
if some condition; then
id="A"
else
id="B"
fi
eval "${id}_count=$((${id}_count + 1))"
# or simpler:
# eval "((${id}_count++))"
但使用关联数组(或普通数组(更简单:
declare -A count
if some condition; then
id="A"
else
id="B"
fi
((count[$id]++))