Здравствуйте уважаемые специалисты, я изучаю линукс для своих целей, и решил попробовать сделать свой bash скрипт для автоматизации установки LAMP под свои старенькие сайты.
С командой sed выходит загвоздка, в чистом виде она работает, а внутри массива выдает ошибку, остальные команды работают при вставке из массива. Прикладываю код целиком. Не судите строго только учусь 2 неделю
#!/bin/bash
#так команды работают sudo sed -i 's/Timeout 160/Timeout 150/' /etc/apache2/apache2.conf sudo sed -i '$a ServerName 127.0.0.1' /etc/apache2/apache2.conf
#скрипт работает как цикл, который: # 1. задает вопрос и спрашивает варианты для выбора 2. команда
declare script=(
«Устанавливаем MC ?» «sudo apt install mc»
# а тут не работает
«Заменить Timeout 300 на Timeout 160 файла /etc/apache2/apache2.conf ?» «sudo sed -i 's/Timeout 160/Timeout 150/' /etc/apache2/apache2.conf» «Добавить текст ServerName 127.0.0.1 в файл /etc/apache2/apache2.con ? » «sudo sed -i '$a ServerName 127.0.0.1' /etc/apache2/apache2.conf» «Просмотреть и Произвести редактирование основного файла настроек ?» «sudo nano /etc/apache2/apache2.conf» «Посмотреть все запущенные модули Apache2 ?» «sudo apache2ctl -M»
)
for i in {0..9..2} do y=i+1 while true; do echo ${script[$i]} read -p «Ответьте 'ДА' - y/д, 'НЕТ' - n/н или 'Выход из сценария' - q/й» yn case $yn in [YyДд]* ) echo; echo «${script[$y]}»; ${script[$y]}; break;; [NnНн]* ) echo «Отмена»; break;; [QqЙй]* ) echo «Выход из сценария»; exit;; * ) echo «Пожалуйста ответьте 'ДА' - y/д, 'НЕТ' - n/н или 'Выход из сценария' - q/й»;; esac done echo done