@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 без выхода из скрипта?
  • Вопрос задан
  • 83 просмотра
Решения вопроса 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
Ответ написан
Ваш ответ на вопрос

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

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