2017-04-23 130 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