Bash 脚本中的逻辑 AND 运算符

Bash 脚本中的逻辑 AND 运算符

我想使用 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

相关内容