Я пытаюсь скомпилировать мой скрипт Bash, но я продолжаю получать эту синтаксическую ошибку, даже если я следую правильному синтаксису.Запуск сценария Bash с правильным синтаксисом, но он продолжает давать мне синтаксическую ошибку
Код:
#!/bin/sh
set -u
SERVICE_NAME=Server
PATH_TO_JAR=/usr/local/MyProject/MyJar.jar
PID_PATH_NAME=/tmp/Server-pid
case $1 in
start)
echo "Starting $SERVICE_NAME ..."
if [ ! -f "$PID_PATH_NAME" ]; then
nohup java -cp '/home/ubuntu/ResumeParser/ResumeParser/ResumeTransducerbin/* :/home/ubuntu/ResumeParser/ResumeParser/GATEFiles/lib/*:/home/ubuntu/.../ServerTest' /tmp 2>> /dev/null >> /dev/null &
echo $! > $PID_PATH_NAME
echo "$SERVICE_NAME started ..."
else
echo "$SERVICE_NAME is already running ..."
fi
;;
stop)
if [ -f $PID_PATH_NAME ]; then
PID=$(cat $PID_PATH_NAME);
echo "$SERVICE_NAME stoping ..."
kill $PID;
echo "$SERVICE_NAME stopped ..."
rm $PID_PATH_NAME
else
echo "$SERVICE_NAME is not running ..."
fi
;;
restart)
if [ -f $PID_PATH_NAME ]; then
PID=$(cat $PID_PATH_NAME);
echo "$SERVICE_NAME stopping ...";
kill $PID;
echo "$SERVICE_NAME stopped ...";
rm $PID_PATH_NAME
echo "$SERVICE_NAME starting ..."
nohup java -cp '/home/ubuntu/ResumeParser/ResumeParser/ResumeTransducerbin/*:/home/ubuntu/... ServerTest' /tmp 2>> /dev/null >> /dev/null &
echo $! > $PID_PATH_NAME
echo "$SERVICE_NAME started ..."
else
echo "$SERVICE_NAME is not running ..."
fi
;;
esac
Когда я бегу: запустить Sudo службы сервера
/etc/init.d/Server: 9: /etc/init.d/Server: Syntax error: "then" unexpected (expecting ";;")
Когда я бегу: Баш -n Сервер
Server: line 9: syntax error near unexpected token `then'
Server: line 9: ` if [ ! -f $PID_PATH_NAME ]; then'
Что я делаю неправильно?
У вас есть 'случай ... esac' над' if' заявление? Возможно, «esac» отсутствует или съеден некоторыми незакрытыми кавычками. –
Как вы получаете одну ошибку «ИЛИ» другую ошибку? Почему вы не просто получаете один или оба? –
SERVICE_NAME = Сервер PID_PATH_NAME =/TMP/Server-PID случай $ 1 в старте) эхо "Начиная $ SERVICE_NAME ..." если [! -f "$ PID_PATH_NAME"]; затем nohup java -cp '/home/ubuntu/.../ServerTest/tmp 2 >>/dev/null >>/dev/null & echo $! > $ PID_PATH_NAME echo "$ SERVICE_NAME начато ..." еще echo "$ SERVICE_NAME уже работает ..." фи ;; ГЗС ошибки я вижу - $ Sudo служба сервер начинает /etc/init.d/Server: 9: /etc/init.d/Server: Синтаксическая ошибка: " а затем" неожиданный (ожидающий «;;») – srao