0
我想用inputInfo()方法获取用户输入的详细信息,每次用户在菜单页按下1。问题在于第一轮投入后。如果我想输入另一个人的记录,它将继续打印出前面的记录。获取用户输入 - shell编程
我想用inputInfo()方法获取用户输入的详细信息,每次用户在菜单页按下1。问题在于第一轮投入后。如果我想输入另一个人的记录,它将继续打印出前面的记录。获取用户输入 - shell编程
您的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循环中的条件失效。将它们设置为如上所述的零值将解决您的问题。
感谢您的帮助 – user2211678