com bash
:
A=10
B=20
C=0
D=1
for var in A B C D; do
if [ ${!var} -eq 0 ]; then
echo "$var value is 0"
else
echo "Ok"
fi
done
Use -eq
para comparar valores inteiros (ou use (( ${!var} == 0 ))
ou (( !${!var} ))
, que é a mesma coisa) e use ${!var}
para obter o valor da variável cujo nome está armazenado na variável var
.
Ou, um pouco mais puro, mas essencialmente o mesmo (ainda em bash
):
for var in A B C D E; do
case ${!var} in
0) printf '%s value is 0\n' "$var" ;;
*) echo 'Ok' ;;
esac
done
Isso trata os valores como strings, não como inteiros.