在bash中,-f是什么意思?

21

我在研究如何使用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

谷歌在这种情况下是无用的,因为搜索旗帜是无用的。


5
我认为 -f 是用来检查文件是否存在的。 - Avinash Raj
请选择以下答案中的一个。:-) - Avinash Raj
1
@AvinashRaj 当我写这篇文章时还没有答案,我必须等待10分钟才能接受。 - Atrotors
1
虽然问题被标记为 bash,并且您称脚本为“bash文件”,但您在 hash-bang 行中使用的是 sh 而不是 bash。在这种情况下,行为没有任何区别,但您不能总是依赖于它。http://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html - cdarke
3
在谷歌搜索中输入bash "-f"可以正常工作,但引号是有意义的,不要省略。 - tripleee
显示剩余2条评论
5个回答

33

8

如果我看到像 Exec="/opt/CLion/bin/clion.sh" %f 这样的东西,那么 %f 代表什么? - Royi

6

[与命令test相同,可以用于测试特定的条件。尝试help test以查找标志是什么。需要注意的是空格——[之后需要加一个空格。


这是唯一一个试图解释情况而不仅仅是“-f测试文件是否存在”的答案。 - askvictor

1

-f 检查文件是否存在并且是一个普通文件。


0
[ -f "$var" ] 

检查$var是否为现有文件(普通文件)。符号链接也可以通过此测试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接