我有三个变量:
VAR1="file1" VAR2="file2" VAR3="file3"
如何在if语句中使用和(&&)运算符如下:
if [ -f $VAR1 && -f $VAR2 && -f $VAR3 ] then ... fi
所以为了使你的表达工作,改变&&对于-a会做的伎俩。
这是正确的:
if [ -f $VAR1 ] && [ -f $VAR2 ] && [ -f $VAR3 ] then ....
或类似物
if [[ -f $VAR1 && -f $VAR2 && -f $VAR3 ]] then ....
甚至
if [ -f $VAR1 -a -f $VAR2 -a -f $VAR3 ] then ....
你可以在这个问题bash : Multiple Unary operators in if statement中找到更多的细节和一些参考给出像What is the difference between test,[ and [[ ?。