Para terminar de comprender el uso de 'case' veamos un ejemplo de un script con 'if' y luego lo pasamos a 'case':
#! /bin/bash
if [ $# -ne 3 ]
then
echo Se necesitan 3 parámetros
return 1
fi
if [ $1 = "suma" ]
then
echo $(($2+$3))
fi
if [ $1 = "resta" ]
then
echo $(($2-$3))
fi
if [ $1 = "multiplicacion" ]
then
echo $(($2*$3))
fi
if [ $1 = "division" ]
then
echo $(($2/$3))
fi
return 0
De ejecución:
matados2k@imperio:~/curso$ sh ejemplo45.sh
Se necesitan 3 parámetros
matados2k@imperio:~/curso$ sh ejemplo45.sh suma 2 2
4
matados2k@imperio:~/curso$ sh ejemplo45.sh resta 2 2
0
matados2k@imperio:~/curso$ sh ejemplo45.sh multiplicacion 2 2
4
matados2k@imperio:~/curso$ sh ejemplo45.sh division 2 2
1
matados2k@imperio:~/curso$
Antes de seguir y ya que acabo de utilizarlo, para realizar operaciones aritméticas se usa “$(( ))” o si no probad, probad ...
Y su versión en 'case':
#! /bin/bash
if [ $# -ne 3 ]
then
echo Se necesitan 3 parámetros
return 1
fi
case $1 in
"suma")
echo $(($2+$3))
;;
"resta")
echo $(($2-$3))
;;
"multiplicacion")
echo $(($2*$3))
;;
"division")
echo $(($2/$3))
;;
esac
return 0