每次用户在菜单页面上按 1 时,我都会尝试使用 inputInfo() 方法让用户输入他们的详细信息。问题是在第一轮输入之后。如果我想输入另一个人的记录,它会不断打印出之前的记录。
问问题
42 次
1 回答
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 循环上的条件失败。像上面那样将它们设置为零值将解决您的问题。
于 2013-10-25T05:28:13.693 回答