这将检查文件是否存在:
#!/bin/bash
FILE=$1
if [ -f $FILE ]; then
echo "File $FILE exists."
else
echo "File $FILE does not exist."
fi
如何仅检查文件是否不存在?
这将检查文件是否存在:
#!/bin/bash
FILE=$1
if [ -f $FILE ]; then
echo "File $FILE exists."
else
echo "File $FILE does not exist."
fi
如何仅检查文件是否不存在?
当前回答
有时使用&&和|运算符可能很方便。
类似于(如果您有命令“test”):
test -b $FILE && echo File not there!
or
test -b $FILE || echo File there!
其他回答
此代码也有效。
#!/bin/bash
FILE=$1
if [ -f $FILE ]; then
echo "File '$FILE' Exists"
else
echo "The File '$FILE' Does Not Exist"
fi
使用!:否定测试中的表达式([是其别名)
#!/bin/bash
FILE=$1
if [ ! -f "$FILE" ]
then
echo "File $FILE does not exist"
fi
相关的手册页是man-test,或者,对于内置的bash命令,相当于man[-或help-test或help]。
或者(不常用)您可以使用以下方法否定测试结果:
if ! [ -f "$FILE" ]
then
echo "File $FILE does not exist"
fi
该语法在“管道”和“复合命令”部分的“man 1 bash”中进行了描述。
您还可以在一行中对多个命令进行分组
[-f“文件名”]||(echo test1&&echo test2&&echo test3)
or
[-f“文件名”]| |{echo test1&&echo test2&&echo test3;}
如果文件名不退出,输出将为
test1
test2
test3
注意:(…)在子shell中运行,{…;}在同一个shell中运行。
值得一提的是,如果需要执行单个命令,可以缩写
if [ ! -f "$file" ]; then
echo "$file"
fi
to
test -f "$file" || echo "$file"
or
[ -f "$file" ] || echo "$file"
有时使用&&和|运算符可能很方便。
类似于(如果您有命令“test”):
test -b $FILE && echo File not there!
or
test -b $FILE || echo File there!