tags: bash bash_case


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 ;;
esac

La 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