Knowing how conditionals work in bash open up a world of scripting possibilities. We’ll learn the basic syntax, including if, else, and elif. Then we'll look at a few of the "primary" operators you can leverage in a conditional statement such as = for string equality, -eq for numeric equality, and -e to check if a file exists. After that, we'll use conditional statements to create a function that asserts that the HTTP status of a given URL is between 200 and 299.
Basic conditional block:
```bash
if [[ ]]; then
fi
Exp:
if [[ $USER = 'username' ]]; then
echo "true"
else
echo "false"
fi
not equal: !=
numeric equality: -eq
not equals: -ne
is empty: -z
if [[ 1 -eq 1 ]];
if [[ -z $USER ]];
Elif
if [[ -z $USER ]]; then
echo "user is empty"
elif [[ 1 -eq 1 ]]; then
echo "1==1"
else
echo "false"
fi
Ternary
[[ $USER = 'username' ]] && echo "yes" || echo "no"
Exp:
check_status() {
## Get HTTP status code
local status=$(curl -ILs $1 | head -n 1 | cut -d ' ' -f 2)
if [[ $status -lt 200 ]] || [[ $status -gt 299 ]]; then
echo "$1 failed with a $status"
return 1
else
echo "$1 succeeded with a $status"
fi
}
check_status https://example.com
check_status https://example.com/404