我想在 shell 的 for 循环中使用变量。
我当前的代码:
VAA="1st_first"
VAB="2nd_second"
VAC="3rd_third"
for i in VAA VAB VAC; do
if [[ "${i}" =~ ^[A-Za-z]*$ ]]; then
echo "$i variable is a word"
else
echo "$i variable is not a word"
fi
done
预期的结果是检查 $VAR1、$VAR2 和 $VAR3 变量,然后打印它是一个词。
当前输出是:
VAA variable is a word
VAB variable is a word
VAC variable is a word
这是不正确的,因为“$VAA”包含一个数字。
如何使用 for 循环外部的变量?
我通常用关联数组来解决这样的问题。但我不知道这是否是一个有效的解决方案。但这并不能保证输出中的原始顺序
输出:
使用变量间接
$i
将显示i
迭代器的单词。${!i}
将显示变量的内容。这是一个可变的间接寻址。因此要检查内容,您需要使用
${!i}
解决方案是:
结果 :