bash - 如果存在多个文件
问题描述
我在 bash 脚本中有一个 IF 语句,用于检查是否存在六个文件。
重击代码
if [ -f file1.txt ] && [ -f file2.txt ] && [ -f file3.txt ] && [ -f file4.txt ] && [ -f file5.txt ] && [ -f file6.txt ];
then
echo "Required Files Exist"
else
echo "Required Files Do Not Exist"
fi
预期结果
Required Files Exist
实际结果
Required Files Do Not Exist
所有文件都存在
解决方案
如果当前目录中确实存在所有六个文件,您的代码应该可以正常工作。
不过,您可能希望对其进行重构以减少代码重复。
all_exist () {
local filename
for filename; do
test -f "$filename" && continue
echo "$0: $filename does not exist - aborting" >&2
return 1
done
return 0
}
all_exist file1.txt file2.txt file3.txt file4.txt file5.txt file6.txt && echo "$0: all files exist" >&2
如果你的文件真的很单调,也许只是
all_exist file{1..6}.txt