这将检查文件是否存在:

#!/bin/bash

FILE=$1     
if [ -f $FILE ]; then
   echo "File $FILE exists."
else
   echo "File $FILE does not exist."
fi

如何仅检查文件是否不存在?


当前回答

此shell脚本还可用于查找目录中的文件:

echo "enter file"

read -r a

if [ -s /home/trainee02/"$a" ]
then
    echo "yes. file is there."
else
    echo "sorry. file is not there."
fi

其他回答

测试命令(此处写为[)有一个“not”逻辑运算符!(感叹号):

if [ ! -f /tmp/foo.txt ]; then
    echo "File not found!"
fi

最简单的方法

FILE=$1
[ ! -e "${FILE}" ] && echo "does not exist" || echo "exists"

您还可以在一行中对多个命令进行分组

[-f“文件名”]||(echo test1&&echo test2&&echo test3)

or

[-f“文件名”]| |{echo test1&&echo test2&&echo test3;}

如果文件名不退出,输出将为

test1
test2
test3

注意:(…)在子shell中运行,{…;}在同一个shell中运行。

如果要使用test而不是[],则可以使用!要获得否定:

if ! test "$FILE"; then
  echo "does not exist"
fi
envfile=.env

if [ ! -f "$envfile" ]
then
    echo "$envfile does not exist"
    exit 1
fi