来自man test
:
-f FILE
FILE exists and is a regular file
-s FILE
FILE exists and has a size greater than zero
Run Code Online (Sandbox Code Playgroud)
让我们从头开始创建一个文件并查看它.
$ touch b
Run Code Online (Sandbox Code Playgroud)
该文件是否存在?
$ [ -f "b" ] && echo "file exists"
file exists # yes!!!!
Run Code Online (Sandbox Code Playgroud)
文件的大小是否大于零?
$ [ -s "b" ] && echo "file exists and is greater than zero"
$ # no!!!!
Run Code Online (Sandbox Code Playgroud)
因此if-elif-else
,检查文件是否存在的良好条件可能是:
if [ -s "$file" ]; then
echo "exists and it is not empty"
elif [ -f "$file" ]; then
echo "at least exists"
else
echo "does not exist"
fi
Run Code Online (Sandbox Code Playgroud)