В общем есть скрипт и GNU Bash 3.0.0. Почему-то вот в этом скрипте интерпретатор ругается на последнюю строку
./start.sh: line 35: syntax error near unexpected token `done'
./start.sh: line 35: `done;'
#! /bin/bash
#Скрипт поддержки работоспособности серверов еА by Daven
echo «=================================================»
echo «Запуск скрипта поддержки работоспособности еАфины»
echo «=================================================»
while [ true ];
do
l="$(eval ps ax | grep -e 'login-server_sql' -c | awk '{ print $1 }’)»
m="$(eval ps ax | grep -e 'map-server_sql' -c | awk '{ print $1 }’)»
c="$(eval ps ax | grep -e 'char-server_sql' -c | awk '{ print $1 }’)»
if [ "$l" >= "2" ]; then
echo «Сервер логинов работает… Проверяем дальше…»
else
echo «Сервер логинов накрылся. Запускаем…»
nohup /root/athena/login-server_sql;
fi
if [ "$c" >= "2" ]; then
echo «Сервер персонажей работает… Проверяем дальше…»
else
echo «Сервер персонажей накрылся. Запускаем…»
nohup /root/athena/char-server_sql
fi
if [ "$m" >= "2" ]; then
echo «Сервер карт работает… Проверяем дальше…»
else
echo «Сервер карт накрылся. Запускаем…»
nohup /root/athena/map-server_sql
fi
echo «Проверка окончена…»
sleep 10;
done;
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Точку с запятой не надо ставить в конце
нет, скорее bash недоволен отсутствием в конце файла пустой строчки.
последняя строчка должна быть пустой (либо быть комментарием, начинаясь с #)
или вот в этом месте:
вот тут и квадратные скобки можно опустить, и точка с запятой при записи do на другой строке не нужна.
Дело не в точках с запятой и не в пустых последних строках, а скорее всего в вашей версии bash. Я выполнил ваш скрипт на bash-2.05 в том виде, в каком он приведен здесь и никаких проблем не возникло.
Пришлось только заменить конструкции вида [ "$l" >= "2" ] на [ $l -ge 2 ], так как при сравнении строк используются только унарные операторы.
Я выполнил его на bash 3.0 и тоже никаких проблем