Hi,
I trying to test two condition together (AND) under bash but it’s not working…
The goal is ti have True when two variables are either not set or empty (empty string)
I’ve tried
if [[ -n VARIABLE1 && -n VARIABLE2 ]]; then
echo "OK"
fi
Here I get the “OK” no matter what .
Thanks.
[ condition1 ] && [ condition2 ] && echo "Good" || echo "Bad"
Never use
a && b || c
. It is not the same asif a; then b; else c; fi
: whena
succeeds butb
fails, it will run bothb
andc
.I would not bother with
[
unless you absolutely need compatibility with non-bash shells.Explanation
[
is an alias for the programtest
, so you can callman test
for more info.&&
is bash syntax for conjunction. In A && B, B will only be called if A returned a exit code >0 (error). You can callman bash
for more info.||
is bash syntax for disjunction. In A || B, B will only be called if A returned exit code =0 (success).true
andfalse
are programs that just return exit codes 0 respectively 1.