Ahora pongamos un poco mas de imaginación; vamos a crearnos un script que reciba un parámetro que me permita personalizar un poco mas mis acciones, y para ello haremos uso de la sentencia case que como bien podemos imaginar actúa de manera idéntica al switch de C (o bien de java).
La forma de acceder al primero parámetro es con $1, así que a programar:
#!/bin/bash
case $1 in
-l)
echo ":: Lista de forma detallada"
ls -l
;;
-r)
echo ":: Lista de forma recursiva"
ls -R
;;
esac
Ahora, analicemos el script. Primeramente vemos la linea que indica donde se encuentra el interprete, seguidamente la sentencia case que compara el valor del primer parámetro ($1) con los casos -l y -r .
Podemos percatarnos que dentro del caso -l hay un echo a pantalla, luego el comando ls -l para ver una lista detallada, y al final del caso encontramos ;; (dos punto y coma). Esto indica que el caso a terminado. Lo mismo para el siguiente caso, y para terminar la sentencia, la palabra esac que como es costumbre en bash así terminan (la palabra inversa a la sentencia).
Ejecutándolo (el script se llama script05)$chmod +x script05 $ ./script05 -l :: Lista de forma detallada total 24 -rwxr-xr-x 1 lesthack lesthack 40 2009-05-30 16:54 script01 -rwxr-xr-x 1 lesthack lesthack 58 2009-05-30 19:28 script01.5 -rwxr-xr-x 1 lesthack lesthack 485 2009-05-31 00:13 script02 -rwxr-xr-x 1 lesthack lesthack 561 2009-05-31 14:53 script03 -rwxr-xr-x 1 lesthack lesthack 327 2009-05-31 16:49 script04 -rwxr-xr-x 1 lesthack lesthack 139 2009-05-31 17:36 script05 $ ./script05 -r :: Lista de forma recursiva .: script01 script01.5 script02 script03 script04 script05
Jorge Hernandez :: http://jorgeluis.com.mx