2013-12-23 3 views
1

У меня есть небольшой скрипт обнаружения сбоев для сервера teampeak. Единственная проблема заключается в том, что я продолжаю получать синтаксическую ошибку об неожиданном конце файла. Я не уверен, что я упустил что-то в этом из всех руководств, за которыми я слежу. Я также запускал dos2unix, так как я много знаю о кодировании в возвышенном тексте 2 на окнах.Неожиданный конец файла при запуске

#!/bin/bash 
TEAMSPEAK=`ps ax | grep ts3server_linux_amd64 | grep -v grep | wc -l` 

if [ $TEAMSPEAK -eq 1 ]; then 
exit 

else 
cd /home/ryahn/ts3 

if [ -f ts3server.pid ]; then 
rm -f ts3server.pid 
echo "File here" 
. ./home/minecraft/ts3/ts3server_startscript.sh start 
fi 
+0

Как в сторону, я думаю, что вы имеете в виду 'пс топор | grep -q '[t] s3server_linux_amd64' && exit' вместо первых пяти строк. Тогда вы больше не пропускаете 'fi'. См. [Бесполезное использование 'wc'] (http://partmaps.org/era/unix/award.html#wc). – tripleee

+0

@ tripleee Я буду экспериментировать с ним. Прямо сейчас у меня есть отображение выражения эха, поэтому я знаю его работу. Я думаю, как только я знаю, что он работает правильно, я буду использовать ваше предложение и удалю первый оператор if – Ryahn

+0

Тогда, по крайней мере, используйте 'grep -c' и потеряйте неприглядный двойной' grep'. – tripleee

ответ

2

Вы пропускаете fi для наружного if состояния.

Держите ваш код с отступом, чтобы лучше понять его:

if [ $TEAMSPEAK -eq 1 ]; then 
    exit 
else 
    cd /home/ryahn/ts3 
    if [ -f ts3server.pid ]; then 
     rm -f ts3server.pid 
     echo "File here" 
     . ./home/minecraft/ts3/ts3server_startscript.sh start 
    fi 
fi 

Кстати вы можете сократить свои трубопроводные команды с помощью pgrep:

TEAMSPEAK=$(pgrep -f ts3server_linux_amd64|wc -l) 
+1

Я должен буду помнить об этом. Спасибо – Ryahn

+0

Добро пожаловать, рад оказать любую помощь. – anubhava

+0

Возможно, вы хотите перенести первый 'fi' на после' rm', чтобы сервер запускался независимо от того, был ли старый файл pid' для очистки. – tripleee

Смежные вопросы