Я только что написал сценарий 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
Как видно, мне пришлось добавить дополнительные строки регистра в конце скрипта, но я хочу удалить их и перезапустить скрипт после того, как какой-либо выбор сделал.