@daniks
Ничего особенного

Как сделать возврат параметра read в bash?

Доброго времени суток, есть простой скрипт
regexp="^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,2}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$"
read name
if [[ $name =~ $regexp ]]; then
   echo "Доменное имя введено верно"
else
   echo "Доменное имя введено неверно"
fi


Как сделать так, чтобы при вводе неверного параметра задавался заново вопрос о вводе $name без выхода из скрипта?
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
@zohan1993
devops
regexp="^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,2}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$"

while :
do
    read name
    if [[ $name =~ $regexp ]]
    then
        echo "Доменное имя введено верно"
        break
    else
        echo "Доменное имя введено неверно"
    fi
done
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
regexp="^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,2}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$"

while read; do
    if [[ $REPLY =~ $regexp ]]; then
        echo "Доменное имя введено верно"
        break
    else
        echo "Доменное имя введено неверно"
    fi
done
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы