Dari halaman bashmanual:
[[ expression ]] - mengembalikan status 0 atau 1 tergantung pada evaluasi ekspresi ekspresi bersyarat.
Dan, untuk ekspresi, salah satu opsi adalah:
expression1 && expression2- benar jika keduanya expression1dan expression2benar.
Jadi Anda bisa andbersama mereka sebagai berikut ( -nadalah kebalikan dari -zsehingga kita dapat menyingkirkan !):
if [[ -n "$var" && -e "$var" ]] ; then
echo "'$var' is non-empty and the file exists"
fi
Namun, saya pikir itu tidak diperlukan dalam kasus ini, -e xyzzybenar jika xyzzy file tersebut ada dan dapat dengan mudah menangani string kosong. Jika itu yang Anda inginkan maka Anda sebenarnya tidak memerlukan -zcek kosong:
pax> VAR=xyzzy
pax> if [[ -e $VAR ]] ; then echo yes ; fi
pax> VAR=/tmp
pax> if [[ -e $VAR ]] ; then echo yes ; fi
yes
Dengan kata lain, cukup gunakan:
if [[ -e "$var" ]] ; then
echo "'$var' exists"
fi
bash; namun, untuk memanfaatkan sepenuhnya "bashism", lihat jawaban @ paxdiablo.