我的循环中“ echo”行出了什么问题?第一次输入后应回显v1的值,第二次输入后应回显v2的值,第三次输入后应回显v3的值。相反,它只是回显$ i。为什么它忽略$ v?循环完成后,我会“每年检查一次保护程序变量,它们显然存在。
脚本:
#!/bin/bash
for i in {1..3}
do
read -p "Insert value $i: " v$i
echo "you wrote " $v$i #I have problem in this line
done
echo
echo "check of saved values:"
echo $v1
echo $v2
echo $v3
控制台输出:
./input_2.sh
Insert value 1: what
you wrote 1
Insert value 2: the
you wrote 2
Insert value 3: hell
you wrote 3
check of saved values:
what
the
hell
谢谢
此行:
echo "you wrote " $v$i
尝试写入变量$v
,后跟$i
。
您需要将变量名存储到变量中,然后使用${!}
,例如:
varname=v$i
echo "you wrote " ${!varname}