and - &&
or - ||
# and example
if [ -r $1 ] && [ -s $1 ]
then
echo This file is useful.
fi
# or example
if [ $USER == 'bob' ] || [ $USER == 'andy' ]
then
ls -alh
else
ls
fi
if [ "$animal" == "penguin" ]; then
echo "Hmmmmmm fish... Tux happy!"
elif [ "$animal" == "dolphin" ]; then
echo "Pweetpeettreetppeterdepweet!"
else
echo "*prrrrrrrt*"
fi
if TEST-COMMANDS; then
CONSEQUENT-COMMANDS;
elif MORE-TEST-COMMANDS; then
MORE-CONSEQUENT-COMMANDS;
else
ALTERNATE-CONSEQUENT-COMMANDS;
fi
if [ ... ]
then
# if-code
else
# else-code
fi
# Basic syntax
if [[ condition_1 ]]; then
echo "Code to execute if condition_1 is true"
elif [[ condition_2 ]]; then
echo "Code to execute if condition_1 is false and condition_2 is true"
else
echo "Code to execute if condition_1 and condition_2 are false"
fi
# Note, the syntax for the one-line equivalent is:
if [[ condition_1 ]]; then echo "Code to execute if condition_1 is true"; elif [[ condition_2 ]]; then echo "Code to execute if condition_1 is false and condition_2 is true"; else echo "Code to execute if condition_1 and condition_2 are false"; fi
# Note to self, see this link for more on bash operators and [ ] vs [[ ]]:
# https://tldp.org/LDP/abs/html/comparison-ops.html
if [ "${STATUS}" != 200 ] && [ "${STRING}" != "${VALUE}" ]; then
Operator Description
! EXPRESSION The EXPRESSION is false.
-n STRING The length of STRING is greater than zero.
-z STRING The lengh of STRING is zero (ie it is empty).
STRING1 = STRING2 STRING1 is equal to STRING2
STRING1 != STRING2 STRING1 is not equal to STRING2
INTEGER1 -eq INTEGER2 INTEGER1 is numerically equal to INTEGER2
INTEGER1 -gt INTEGER2 INTEGER1 is numerically greater than INTEGER2
INTEGER1 -lt INTEGER2 INTEGER1 is numerically less than INTEGER2
-d FILE FILE exists and is a directory.
-e FILE FILE exists.
-r FILE FILE exists and the read permission is granted.
-s FILE FILE exists and it's size is greater than zero (ie. it is not empty).
-w FILE FILE exists and the write permission is granted.
-x FILE FILE exists and the execute permission is granted.
if [[ some condition ]]; then
do_this
elif [[ another condition ]]; then
do_that_a
elif [[ yet another condition]]; then
do_that_b
else
do_that_default_thing
fi
if [[ condition ]]
then
<execute command>
else
<execute another command>
fi
#!/bin/bash
# Basic if statement
if [ $1 -gt 100 ]
then
echo Hey that's a large number.
pwd
fi
if TEST-COMMAND
then
STATEMENTS1
else
STATEMENTS2
fi
if [[ condition ]]
then
<execute command>
else
<execute another command>
fi
if [[ TEST-COMMAND ]]
then
STATEMENTS1
else
STATEMENTS2
fi
if first-test-commands; then
consequent-commands;
[elif more-test-commands; then
more-consequents;]
[else alternate-consequents;]
fi