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

    Programación en Bash Linux IV: Estructuras [for, while, until]XII Feria del Libro Cortazar, GTO