【问题标题】:Come out of while loop in shell scripting退出 shell 脚本中的 while 循环
【发布时间】:2017-09-20 00:04:45
【问题描述】:

我有以下代码

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 

当我试图执行上面的代码时,我无法进入第二个条件,即它没有退出循环。 我需要的是它应该询问直到用户输入正确的电子邮件 ID,然后它应该转到下一组代码并最终打印最终的 echo 语句

【问题讨论】:

  • 在break之前插入一行else。

标签: bash shell while-loop break


【解决方案1】:

你可以这样做:

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

【讨论】:

  • 这太完美了,非常感谢。我很想得到一个关于“while :;”的小解释,再次非常感谢
  • while : 实际上是让它无限循环
  • 如果我想打印您输入了正确的电子邮件 ID,我应该怎么做?
  • 知道了,我是在break语句之后写的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-10
  • 1970-01-01
  • 2015-03-03
  • 2018-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多