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.
To check for an empty string, use
-z.-nchecks to see if a string is not empty.You need to reference the value of the variable, ie:
if [[ -n "$VARIABLE1" && -n "$VARIABLE2" ]]; then echo "OK" finot working, both variables do not exist and the
echo "OK"do not trigger.Then it is working. That is what that code was checking for.
Specifically, -n checks if the variable exists and also does not have a null value.
If you want to reverse it, ie, check that those conditions are not true, put an exclamation mark in front of the whole thing.
Thank you all for yours input
What finally did work
if [[ -z VARIABLE1 && -z VARIABLE2 ]]; then echo "OK" fiIf only Linux was using Python syntax that would be so much more intuitive…
Linux does use Python syntax… in Python.
In Bash though, it uses Bash syntax.
Try this:
#!/usr/bin/env bash a="" if [[ -z "${a}" && -z "${b}" ]]; then echo "OK" else echo "Not OK" fi a="OK" if [[ -n "${a}" && -z "${b}" ]]; then echo "More ${a}" else echo "More Unokay" fi



