Using the && operator in an if statement
236,391
So to make your expression work, changing &&
for -a
will do the trick.
It is correct like this:
if [ -f $VAR1 ] && [ -f $VAR2 ] && [ -f $VAR3 ]
then ....
or like
if [[ -f $VAR1 && -f $VAR2 && -f $VAR3 ]]
then ....
or even
if [ -f $VAR1 -a -f $VAR2 -a -f $VAR3 ]
then ....
You can find further details in this question bash : Multiple Unary operators in if statement and some references given there like What is the difference between test, [ and [[ ?.
Author by
Ziyaddin Sadigov
Updated on July 08, 2022Comments
-
Ziyaddin Sadigov almost 2 years
I have three variables:
VAR1="file1" VAR2="file2" VAR3="file3"
How to use and (
&&
) operator in if statement like this:if [ -f $VAR1 && -f $VAR2 && -f $VAR3 ] then ... fi
When I write this code it gives error. What is the right way?
-
Adrian Frühwirth almost 11 yearsNote that POSIX recommends the use of
&&
and||
with the single bracket notation over-a
and-o
, so if you are writing portable code go for the first notation, otherwise the second and skip the third, especially since it can get awkward and hard to read if you need to group expressions.