为什么for循环中组合变量的回显不起作用?

问题描述 投票:0回答:1

我的循环中“ 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

谢谢

bash for-loop variables input echo
1个回答
0
投票

此行:

echo "you wrote " $v$i

尝试写入变量$v,后跟$i

您需要将变量名存储到变量中,然后使用${!},例如:

varname=v$i
echo "you wrote " ${!varname}
© www.soinside.com 2019 - 2024. All rights reserved.