Página siguiente Página anterior Índice general

5. Variables

Puede usar variables como en cualquier otro lenguaje de programación. No existen tipos de datos. Una variable de bash puede contener un número, un caracter o una cadena de caracteres.

No necesita declarar una variable. Se creará sólo con asignarle un valor a su referencia.

5.1 Ejemplo: ˇHola Mundo! utilizando variables

            #!/bin/bash          
            CAD="ˇHola Mundo!"
            echo $CAD    
            

La segunda línea crea una variable llamada STR y le asigna la cadena "ˇHola Mundo!". Luego se recupera el VALOR de esta variable poniéndole un '$' al principio. Por favor, tenga en cuenta (ˇinténtelo!) que si no usa el signo '$', la salida del programa será diferente, y probablemente no sea lo que usted quería.

5.2 Ejemplo: Un script de copia de seguridad muy simple (algo mejor)

           #!/bin/bash          
           OF=/var/mi-backup-$(date +%Y%m%d).tgz
           tar -cZf $OF /home/yo/
           

Este script introduce algo nuevo. Antes que nada, debería familiarizarse con la creación y asignación de variable de la línea 2. Fíjese en la expresión '$(date +%Y%m%d)'. Si ejecuta el script se dará cuenta de que ejecuta el comando que hay dentro de los paréntesis, capturando su salida.

Tenga en cuenta que en este script, el fichero de salida será distinto cada día, debido al formato pasado al comando date (+%Y%m%d). Puede cambiar esto especificando un formato diferente.

Algunos ejemplos más:

echo ls

echo $(ls)

5.3 Variables locales

Las variables locales pueden crearse utilizando la palabra clave local.

                #!/bin/bash
                HOLA=Hola
                function hola {
                        local HOLA=Mundo
                        echo $HOLA
                }
                echo $HOLA
                hola
                echo $HOLA
        

Este ejemplo debería bastar para mostrarle el uso de una variable local.


Página siguiente Página anterior Índice general

Hosting by: hurra.com
Generated: 2007-01-26 18:00:33