case

Bash builtin construct for creating multi-choice conditional statements. More information: https://www.gnu.org/software/bash/manual/bash.html#index-case.

  • Match a variable against string literals to decide which command to run:

case $COUNTRULE in words) wc -w README ;; lines) wc -l README ;; esac

  • Combine patterns with , use * as a fallback pattern:

case $COUNTRULE in [wW]|words) wc -w README ;; [lL]|lines) wc -l README ;; *) echo "what?" ;; esac

  • Allow matching multiple patterns:

case $ANIMAL in cat) echo "It's a cat" ;;& cat|dog) echo "It's a cat or a dog" ;;& *) echo "Fallback" ;; esac

  • Continue to the next pattern's commands without checking the pattern:

case $ANIMAL in cat) echo "It's a cat" ;& dog) echo "It's either a dog or cat fell through" ;& *) echo "Fallback" ;; esac