User Tools

Site Tools


bash:case

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

bash:case [2024/02/16 00:48] (current)
Line 1: Line 1:
 +===== case =====
 +<code bash>The case and select constructs are technically not loops, 
 +since they do not iterate the execution of a code block. Like loops,
 +however, they direct program flow according to conditions at the top or bottom of the block.
  
 +Controlling program flow in a code block
 +
 +case (in) / esac
 +
 +The case construct is the shell scripting analog to switch in C/C++. 
 +It permits branching to one of a number of code blocks, depending on condition tests. 
 +It serves as a kind of shorthand for multiple if/then/else statements and is an appropriate tool for creating menus.
 +</code>
 +
 +
 +=== bash case syntax ===
 +<code bash>
 +case "$variable" in
 +
 + "$condition1" )
 + command...
 + ;;
 +
 + "$condition2" )
 + command...
 + ;;
 +
 +esac 
 +</code>
 +
 +
 +=== bash case example ===
 +<code bash>
 +#! /bin/bash
 +
 +
 +while [ $# -gt 0 ]; do    # Until you run out of parameters . . .
 +  case "$1" in
 +    -d|--debug)
 +              # "-d" or "--debug" parameter?
 +              DEBUG=1
 +              ;;
 +    -c|--conf)
 +              CONFFILE="$2"
 +              shift
 +              if [ ! -f $CONFFILE ]; then
 +                echo "Error: Supplied file doesn't exist!"
 +                exit $E_CONFFILE     # File not found error.
 +              fi
 +              ;;
 +  esac
 +  shift       # Check next set of parameters.
 +done
 +
 +#  From Stefano Falsetto's "Log2Rot" script,
 +#+ part of his "rottlog" package.
 +#  Used with permission
 +</code>
 +
 +=== output of case ===
 +<code bash>
 +no output atm</code>

on the occasion of the current invasion of Russia in Ukraine

Russian Stop this War
bash/case.txt · Last modified: 2024/02/16 00:48 (external edit)

Impressum Datenschutz