Shell脚本如果[-f ./file]

Ale*_*ire 13 shell

我正在学习shell脚本我自己,我正在调查如何做If,我不明白一个例子:

if [ -f ./$NAME.tar ]; then
    //do something
else
    //something else
Run Code Online (Sandbox Code Playgroud)

现在我做了一些实验,并给了NAME我目录中的文件名.当我在没有-f的情况下执行时,它正在进入else条件,但是使用-f它进入//做某事条件所以我假设-f是for file.它是否正确?我只是找不到确认这一点的信息.

kam*_*uel 23

来自bash手册:

  -f file - True if file exists and is a regular file.
Run Code Online (Sandbox Code Playgroud)

所以是的,-f意味着文件(./$NAME.tar在您的情况下)存在并且是常规文件(例如,不是设备文件或目录).

  • 它出现在"条件表达式"部分的"man 1 bash"中. (4认同)