= Bash Logic = <> ---- == Conditional Logic == Any commands and grammars that set exit codes can be used for conditional logic. {{{ if grep /path/to/file --fixed-strings foo >/dev/null; then : fi }}} The `[[` builtin sets the exit code to 0 if a [[Bash/Test|test]] evaluates to true, and 1 otherwise. {{{ if [[ TEST ]]; then : fi }}} The `((` builtin sets the exit code to 0 if an arithmetic expression resolves to any non-zero number, and 1 otherwise. See [[Bash/Arithmetic|here]] for details on valid arithmetic. {{{ if (( $var - 1 )); then : fi }}} ---- == Conditional Commands == To execute a command conditionally after another command, try: {{{ true && echo "This only executes because the first command set an exit code of 0" false || echo "This only executes because the first command set an exit code of 1" }}} These operators have equal precedence. ---- == Case Switching Logic == {{{ case $INPUT_STRING in y) echo "Proceeding..." ;; n) echo "Quitting..." ;; *) echo "Please enter y or n only" ;; esac }}} ---- CategoryRicottone