Ich weiß nicht, warum dieses kleine Shell-Skript nicht funktioniert

2

Ich versuche, ein kleines Skript zu schreiben, um Gunicorn für eine Python-Website zu starten, die ich gerade erst mache. Ich habe das Skript unter https://github.com/benoitc/gunicorn/blob/master/examples/gunicorn_rc leicht geändert . Hier ist meine Version.

#!/bin/sh

GUNICORN=/usr/local/bin/gunicorn
ROOT=/srv/mobile-site/app
PID=/var/run/gunicorn.pid

APP=mobilecms:app

if [ -f $PID ]; then rm $PID fi        

cd $ROOT
exec $GUNICORN -b 127.0.0.1:8080 -w 8 -k gevent --pidfile=$PID $APP

Wenn ich jedoch versuche, das Skript auszuführen, wird dieser Fehler angezeigt

/etc/init.d/gunicorn: 13: Syntax error: end of file unexpected (expecting "fi")

Weiß jemand was los ist?

tominiert
quelle

Antworten:

7

Sie benötigen ein Semikolon zwischen rm $PIDund fi. So was:

if [ -f $PID ]; then rm $PID; fi 

Die Semikolons sind im Wesentlichen Abkürzungen, sodass Sie diese kleine if-Anweisung in eine einzelne Zeile setzen können. Ohne sie würde es so aussehen:

if [ -f $PID ]
then
    rm $PID
fi 
Jed Daniels
quelle