Что означает-f в bash

Я смотрел, как использовать runit запустить gunicorn. Я смотрел на файл bash и я не знаю, что -f $PID и в

#!/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 бесполезен в этом случае, потому что поиск флагов бесполезен

5 ответов


Google бесполезен в этом случае, потому что поиск флагов бесполезен

к счастью,Bash Справочное Руководство доступен онлайн, по адресу http://www.gnu.org/software/bash/manual/bashref.html. Это первый хит, Когда Вы Google для "bash manual". §6.4 "Условные Выражения Bash" говорит:

-f file

True, если существует и является обычный файл.


- f-file-обычный файл (не каталог или файл устройства)

проверьте это для всех операторов тестирования файлов: http://tldp.org/LDP/abs/html/fto.html


на [ Это то же самое, что и команда test что позволяет проверить определенные вещи. Попробуй!--2--> чтобы узнать, что такое флаги. Вещи, чтобы быть осторожным с помещениями -[ нужно пространство после него.


-f проверяет, существует ли файл и является ли он обычным файлом.


[ -f "$var" ] 

проверяет, является ли $var существующий файл (обычный файл). Символическая ссылка тоже проходит этот тест.