Есть ли способ для сценария bash для повторного запуска после выбора случая? - PullRequest
0 голосов
/ 31 марта 2020

Я только что написал сценарий bash для изменения версий PHP -cli и Apache PHP без необходимости вручную запускать команды dismod или enmod et c et c и перезапуск сценария Apache для внесения изменений, а также из-за того, что скрипт использует оператор case, у меня проблема в том, что когда код внутри выбора завершается, весь скрипт заканчивается, ie: -

case $CHOICE in
1) do code;;
2) do code;;
esac

Таким образом, когда выбран вариант 1 или 2, сценарий внутри вариантов выполняется, затем сценарий завершается, но я хочу перезапустить сценарий, если в диалоговом окне не нажата кнопка «Отмена», ie: -

CHOICE=$(dialog --clear \
            --backtitle "$BACKTITLE" \
            --title "$TITLE" \
            --menu "$MENU" \
            $HEIGHT $WIDTH $CHOICE_HEIGHT \
            "${OPTIONS[@]}" \
            2>&1 >/dev/tty)

Я попытался добавить имя скрипта в качестве дополнительной строки перед ;; но все равно останавливается.

Чтобы дать идею, написанный мною код слишком велик, чтобы публиковать здесь, но я опубликую его на pastebin и опубликую ссылку здесь: -

https://pastebin.com/q2iH7Q2E

Как видно, мне пришлось добавить дополнительные строки регистра в конце скрипта, но я хочу удалить их и перезапустить скрипт после того, как какой-либо выбор сделал.

1 Ответ

0 голосов
/ 31 марта 2020

Положите al oop вокруг всего кода.

while :
do
    # all the code that should repeat goes here
done

Внутри l oop вы можете использовать break, чтобы остановить l oop.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...