我正在尝试写一个函数来输入不同人的信息,例如,五个学生。我打算用for循环来做,而不声明数组。
function student() {
for (( i = 0; i < 5; i++ )); do
echo "Name"
read name$i
done
}
我相信在每次迭代中,读取输入的变量name$i
都是不同的。
function student() {
for (( i=0;i < 5; i++)); do
echo $(name$i)
done
}
它显示错误name0: command not found
现在,当我显式显示值(如echo "$name0"
echo "$name1"
)时,一切正常,这告诉我所有变量都已声明,输入已填充。问题是,当我试图显示值时,可能无法正确访问变量名,因为当我写入echo "$name$i"
时,输出为name0
。这意味着它将“name”作为字符串,并将i的值作为字符串。我尝试过使用几种方法将字符串“name”与“i”的值连接起来。有一种方法可以像namen="${i}name"
一样绑定两者,但是我想要字符串后面的整数值,所以它对我不起作用。我是shell脚本的新手,所以你所有有价值的建议都会很有帮助。
1条答案
按热度按时间9vw9lbht1#
设定:
在
bash dynamic variables
上运行web搜索应该会提供很多选项,其中包括:间接引用
名称引用
这两种方法都会生成: