Самый эффективный способ выполнения обработки исключений в bash? - PullRequest
0 голосов
/ 26 февраля 2020

Я новичок в bash сценариях и более знаком с python, но, скажем, у меня есть этот сценарий, например.

Проблема: Весь сценарий завершается если вводится нулевое значение, такое как случайное нажатие, введите дважды или не вводите «n» или «y» при появлении запроса.

Решение Цель: Вместо завершения, Я хотел бы добавить исключение / сообщение об ошибке и выполнить запрос пользователя снова каждый раз, когда есть нулевое значение или нет.

read -r -p "Check the test results below.. do they look good enough to continue? [y/N]" response 
if pp $response =~ ^([yY[eE][sS]|[yY])$
then
  echo "Continuing"
elif [[ $response =~ ^([nN][oO]|[nN])$ ]]
  exit
else
  # want to use read -r -p prompt again. Perform recursion if possible 
  exit
fi 

Я пытаюсь выполнить рекурсию с помощью этого встроенного типа читать. Мне интересно, есть ли простое решение для достижения моей цели.

1 Ответ

3 голосов
/ 26 февраля 2020

Заключите его в while loop

#!/usr/bin/env bash

while read -r -p "Check the test results below.. do they look good enough to continue? [y/N] " response; do
    if [[ $response =~ ^([yY[eE][sS]|[yY])$ ]]; then
      echo "Continuing"
    elif [[ $response =~ ^([nN][oO]|[nN])$ ]]; then
      exit
    else
       printf '%s\n' "Illegal argument ${response:-empty}" >&2
    fi
 done
  • , пока достаточно прочитать l oop.
  • "${response:-empty}" является формой расширения параметра PE.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...