我想使用 AND 运算符检查创建的三个文件是否为空。
#!/bin/bash
FILE_1="/root/Desktop/file1"
FILE_2="/root/Desktop/file2"
FILE_3="/root/Desktop/file3"
if [[ -f "${FILE_1}" && -f "${FILE_2}" && -f "${FILE_3}" ]]; then
echo "All files are not empty"
else
echo "All files are empty"
fi
但我没有得到预期的输出。在 if-else 语句中使用 AND 运算符的正确语法是什么?
答案1
-f
检查文件是否存在,是否是常规文件(即不是链接、目录、套接字等)。要检查它是否为空,您-s
还需要使用检查文件大小的方法:
if [[ -f $FILE_1 && ! -s $FILE_1
&& -f $FILE_2 && ! -s $FILE_2
&& -f $FILE_3 && ! -s $FILE_3
]] ; then