#!/bin/bash -e ##################################################### # # If/else statements allow you to run select commands # if conditions are met or if they are not. # # Usage: bash bash/ifelse.sh # ##################################################### NUMBER=3 COMPARE="Compare this string" SUBSTRING="not" SUBSTRING2="this" # Evaluate whether two numbers are equal with the "-eq" operator if [ ${NUMBER} -eq 3 ]; then echo "Variable \$NUMBER is equal to 3" else echo "Variable \$NUMBER is NOT equal to 3" fi sleep 2 # Evaluate whether a string contains substrings. Uses the # "elif" operator to check if a second condition is met if # the first one fails. if [[ "${COMPARE}" == *"${SUBSTRING}"* ]]; then echo "String \$COMPARE contains substring \"${SUBSTRING}\"" elif [[ "${COMPARE}" == *"${SUBSTRING2}"* ]]; then echo "String \$COMPARE contains substring \"${SUBSTRING2}\"" else echo "String \$COMPARE contains none of the substrings" fi sleep 2 # Evaluate whether a file exists with the "-f" operator if [ -f "text/cat1.txt" ]; then echo "File text/cat1.txt exists. Here are the contents:" cat text/cat1.txt else echo "File text/cat1.txt does NOT exist" fi sleep 2 # Evaluate whether a directory exists with the "-d" operator if [ -d "not_here" ]; then echo "Directory not_here exists. Here are the contents:" ls not_here else echo "Directory not_here does NOT exist" fi # Evaluate whether or not one condition OR another # is met using the "||" operators. # The "-gt" operator determines if a number is # greater than a compared number and "-lt" for # less than. if [ $NUMBER -gt 1 ] || [ $NUMBER -lt 5]; then echo "Variable \$NUMBER is greater than 1 or less than 5" fi # Evaluate whether both conditions are met using # the AND operator "&&" if [[ "${COMPARE}" == *"${SUBSTRING}"* ]] && [[ "${COMPARE}" == *"${SUBSTRING2}"* ]]; then echo "String \$COMPARE contains both substrings" else echo "String \$COMPARE does not contain both substrings" fi