2015-06-14 11 views
6

Ich sah, wie man runit to run gunicorn verwenden. Ich war an der Bash-Datei suchen, und ich weiß nicht, was -f $PID tut inWas bedeutet -f in der Bash

#!/bin/sh 

GUNICORN=/usr/local/bin/gunicorn 
ROOT=/path/to/project 
PID=/var/run/gunicorn.pid 

APP=main:application 

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

cd $ROOT 
exec $GUNICORN -c $ROOT/gunicorn.conf.py --pid=$PID $APP 

Google in diesem Fall nutzlos ist, weil für die Fahnen der Suche nutzlos ist

+4

ich denke, '-f' prüft auf Datei oder nicht. –

+0

@AvinashRaj Machen Sie es eine Antwort, damit ich es akzeptieren kann. – Atrotors

+0

wählen Sie die aus den folgenden Antworten. :-) –

Antwort

1

-f überprüft, ob die Datei existiert und ist ein regelmäßiger Datei.

3

Die [ ist das gleiche wie die Befehl test, mit dem Sie bestimmte Dinge testen können. Versuchen Sie help test, um herauszufinden, was die Flags sind. Dinge, mit denen man vorsichtig sein muss, sind Räume - die [ benötigt ein Leerzeichen danach.

+0

-1, sorry. '[' ist eine eingebaute Shell, kein "Alias". (Und "test" ist eine eingebaute Shell, kein "Programm".) Viele Systeme werden mit den Programmen '' '' 'und' '' '' 'auf dem Standardpfad ausgeliefert, aber diese Programme werden nicht ausgeführt, wenn Sie' [-f $ PID] 'in Bash. – ruakh

+0

Danke für die Bearbeitung; Aber die Sache ist, 'man test' zeigt die Man-Page für das Standalone-Programm, nicht die eingebaute Shell. Sie sind im Allgemeinen sehr ähnlich, aber es ist nicht so autoritativ, wie Sie vielleicht erwarten würden, "Mann-Test" zu sein. (Zumindest wird es wahrscheinlich eine Warnung in diesem Sinne enthalten.) Besserer Rat würde sein, 'help test' zu verwenden (' help' ist ein weiterer bash butintin). – ruakh

+0

TIL über den Hilfebefehl. Die man-Seite hat immer für mich funktioniert ... – askvictor

0
[ -f "$var" ] 

Prüft, ob $var eine vorhandene Datei (reguläre Datei) ist. Symbolische Verbindung besteht auch diesen Test.