I was looking at how to use runit to run gunicorn. I was looking at the bash file and I don't know what -f $PID does in
#!/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 is useless in this case because searching for flags is useless
5 Answers
Google is useless in this case because searching for flags is useless
Fortunately, the Bash Reference Manual is available online, at . It's the first hit when you Google for "Bash manual". §6.4 "Bash Conditional Expressions" says:
-f fileTrue if file exists and is a regular file.
-f - file is a regular file (not a directory or device file)
Check this out for all file test operators:
The [ is the same as the command test which allows you to test certain things. Try help test to find out what the flags are. Things to be careful with are spaces - the [ needs a space after it.
-f checks if the file exists and is a regular file.
[ -f "$var" ]
Checks if $var is an existing file (regular file). Symbolic link passes this test too.