每次用户在菜单页面按1时,我都会尝试使用inputInfo()方法获取用户输入的详细信息。问题出在第一轮投入之后。如果我想输入一个人的另一个记录,它将继续打印出以前的记录。
答案 0 :(得分:1)
你的while循环在初始情况之后有效,因为你读入的变量对你的while循环条件是有效的,所以永远不会调用提示,因为$ name包含上一次运行的有效值。
inputInfo() {
nameRegex="[0-9]"
name=""
while [[ !$name =~ $nameRegex || -z $name ]]; do
echo "Enter name"
read name
if [[ $name =~ $nameRegex || -z $name ]]; then
echo "Name can only contain numbers or blank"
fi
done
您可以设置读取变量以使while循环上的条件失败。如上所述将它们设置为零值将解决您的问题。