Từ bashtrang hướng dẫn:
  [[ expression ]] - trả về trạng thái 0 hoặc 1 tùy theo đánh giá biểu thức biểu thức điều kiện.
Và, đối với các biểu thức, một trong các tùy chọn là:
  expression1 && expression2- đúng nếu cả hai expression1và expression2đều đúng.
Vì vậy, bạn có thể andkết hợp chúng lại như sau ( -nngược lại -zđể chúng ta có thể thoát khỏi !):
if [[ -n "$var" && -e "$var" ]] ; then
    echo "'$var' is non-empty and the file exists"
fi
Tuy nhiên, tôi không nghĩ rằng nó cần thiết trong trường hợp này, -e xyzzylà đúng nếu xyzzy tệp tồn tại và có thể dễ dàng xử lý các chuỗi trống. Nếu đó là những gì bạn muốn thì bạn thực sự không cần -zkiểm tra không trống:
pax> VAR=xyzzy
pax> if [[ -e $VAR ]] ; then echo yes ; fi
pax> VAR=/tmp
pax> if [[ -e $VAR ]] ; then echo yes ; fi
yes
Nói cách khác, chỉ cần sử dụng:
if [[ -e "$var" ]] ; then
    echo "'$var' exists"
fi
               
              
bash; tuy nhiên, để tận dụng tối đa "bashism", hãy xem câu trả lời của @ paxdiablo.