-L là bài kiểm tra cho tập tin tồn tại và cũng là một liên kết tượng trưng
Nếu bạn không muốn kiểm tra xem tệp có phải là một liên kết tượng trưng không, nhưng chỉ cần kiểm tra xem nó có tồn tại bất kể loại (tệp, thư mục, ổ cắm, v.v.) không, hãy sử dụng -e
Vì vậy, nếu tệp thực sự là tệp và không chỉ là một liên kết tượng trưng, bạn có thể thực hiện tất cả các kiểm tra này và nhận trạng thái thoát có giá trị cho biết tình trạng lỗi.
if [ ! \( -e "${file}" \) ]
then
echo "%ERROR: file ${file} does not exist!" >&2
exit 1
elif [ ! \( -f "${file}" \) ]
then
echo "%ERROR: ${file} is not a file!" >&2
exit 2
elif [ ! \( -r "${file}" \) ]
then
echo "%ERROR: file ${file} is not readable!" >&2
exit 3
elif [ ! \( -s "${file}" \) ]
then
echo "%ERROR: file ${file} is empty!" >&2
exit 4
fi