Não sei porque este pequeno script de shell não funciona

2

Estou tentando fazer um pequeno script para iniciar o gunicorn para um site em Python que estou criando. Eu modifiquei o script encontrado em link . Aqui está a minha versão.

#!/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

Quando tento executar o script, ele mostra esse erro

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

Alguém sabe o que há de errado?

    
por tominated 04.03.2011 / 07:20

1 resposta

7

Você precisa de um ponto e vírgula entre rm $PID e fi . Assim:

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

Os ponto-e-vírgula são essencialmente abreviados, portanto você pode colocar essa pequena instrução if em uma única linha. Sem eles, ficaria assim:

if [ -f $PID ]
then
    rm $PID
fi 
    
por 04.03.2011 / 07:28