Ваш код должен работать нормально, если действительно все шесть файлов существуют в текущем каталоге.
Вы можете реорганизовать его, чтобы уменьшить дублирование кода.
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