获得用户输入 - shell编程

时间:2013-10-25 04:28:51

标签: shell

每次用户在菜单页面按1时,我都会尝试使用inputInfo()方法获取用户输入的详细信息。问题出在第一轮投入之后。如果我想输入一个人的另一个记录,它将继续打印出以前的记录。

1 个答案:

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