2017-04-23 91 views
1

我有以下代码出来while循环的shell脚本

echo "Please Enter the Email Id" 
while read -r email 
do 
if 
    echo "$email" | grep -v "awt" 
    then 
    echo "You entered a invalid email id please try again" 
    break 
    fi 
    echo "================You chose Email id as $email" 
done 

echo "Please Enter the user Name" 
read -r name 
    echo "you entered $name" 
echo Final email id $email 
echo final name  $name 

当IAM试图执行上面的代码,荫未能就进入第二个条件,那就是它不出来的循环。 我需要的是它应该问,直到用户输入正确的电子邮件ID之后,它应该去的下一组代码的最后打印的最后echo语句

+0

在'break'之前插入'else'。 – Cyrus

回答

0

你可以这样说:

while :; do 
    read -rp 'Please Enter the Email Id: ' email 
    if [[ $email != *awt* ]]; then 
     echo "You entered an invalid email id please try again" 
    else 
     break 
    fi 
done 
+0

这是非常完美的谢谢。我很想得到一个关于“while:”的小解释:“再次非常感谢 – Abhijith

+0

'while:实际上使它成为一个无限循环 – anubhava

+0

如果我想打印输入正确的电子邮件ID,我该如何去做? – Abhijith