Le istruzioni case sono anche note come istruzioni switch-case in altri linguaggi, come C/C++ e C#. La differenza principale tra if-else e switch-case è che i costrutti if-else consentono di controllare qualsiasi espressione booleana, mentre switch-case confronta sempre solo la variabile con il valore esatto. Pertanto, le stesse condizioni di if-else, come “maggiore di”, non sono consentite per switch-case. La sintassi per le istruzioni switch-case è la seguente:
case <expression> in
pattern_1 ) statements ;;
pattern_2 ) statements ;;
pattern_3 ) statements ;;
esacLa definizione di switch-case inizia con case, seguito dalla variabile o dal valore come espressione, che viene poi confrontato nel pattern. Se la variabile o il valore corrisponde all’espressione, le istruzioni vengono eseguite dopo la parentesi e terminate con un doppio punto e virgola (;;).
Esempio:
# Available options
echo -e "Additional options available:"
echo -e "\t1) Identify the corresponding network range of target domain."
echo -e "\t2) Ping discovered hosts."
echo -e "\t3) All checks."
echo -e "\t*) Exit.\n"
read -p "Select your option: " opt
case $opt in
"1") network_range ;;
"2") ping_host ;;
"3") network_range && ping_host ;;
"*") exit 0 ;;
esac