2013-10-25 56 views
0

我想用inputInfo()方法获取用户输入的详细信息,每次用户在菜单页按下1。问题在于第一轮投入后。如果我想输入另一个人的记录,它将继续打印出前面的记录。获取用户输入 - shell编程

回答

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循环中的条件失效。将它们设置为如上所述的零值将解决您的问题。

+0

感谢您的帮助 – user2211678