Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Unix-системы Новый топик    Ответить
 Не работает оператор выбора case  [new]
Androgen1985
Member

Откуда:
Сообщений: 55
Пытаюсь написать скрипт для запуска сервиса. Внутри оператор выбора, который в зависимости от параметра запуска должен выполнить ту или иную команду. Но не работает, причем не отрабатывает даже в простейшем варианте с echo.
Вызываю скрипт так:
/home/user/test.sh start

но попадаю в ветку else
вывод
start
serv_name XZ ...

Подскажите пожалуйста что я делаю не так
+ bash script
#!/bin/bash
echo $1
SERVICE_NAME=serv_name
case $1 in
   "start")
       echo "Starting $SERVICE_NAME ..."
       fi
   ;;
   "stop")
      echo "$SERVICE_NAME stopped ..."
      fi
   ;;
   "restart")
       echo "$SERVICE_NAME restart ..."
       fi
   ;;
   *)
   echo "$SERVICE_NAME XZ ..."
esac
5 июн 19, 09:28    [21902139]     Ответить | Цитировать Сообщить модератору
 Re: Не работает оператор выбора case  [new]
Androgen1985
Member

Откуда:
Сообщений: 55
Вопрос снят. причина в пробелах похоже перед параметрами в bash скрипте, после замены на табуляцию все заработало
5 июн 19, 11:45    [21902340]     Ответить | Цитировать Сообщить модератору
 Re: Не работает оператор выбора case  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 6793
Androgen1985
Пытаюсь написать скрипт для запуска сервиса. Внутри оператор выбора, который в зависимости от параметра запуска должен выполнить ту или иную команду. Но не работает, причем не отрабатывает даже в простейшем варианте с echo.
Вызываю скрипт так:
/home/user/test.sh start

но попадаю в ветку else
вывод
start
serv_name XZ ...

Подскажите пожалуйста что я делаю не так
+ bash script
#!/bin/bash
echo $1
SERVICE_NAME=serv_name
case $1 in
   "start")
       echo "Starting $SERVICE_NAME ..."
 ==>      fi
   ;;
   "stop")
      echo "$SERVICE_NAME stopped ..."
      fi
   ;;
   "restart")
       echo "$SERVICE_NAME restart ..."
       fi
   ;;
   *)
   echo "$SERVICE_NAME XZ ..."
esac


А зачем там fi?
$ bash t.sh 11
11
t.sh: line 7: syntax error near unexpected token `fi'
t.sh: line 7: `       fi'

Видимо Вы что-то не договариваете
6 июн 19, 11:58    [21903331]     Ответить | Цитировать Сообщить модератору
Все форумы / Unix-системы Ответить