El uso de variables en la programación bash es muy sencillo, por ejemplo, para asignarle un valor a una variable se hacer como ya podrás imaginar VARIABLE=valor, sin embargo, para hace uso de ella tendremos que añadirle el $ al inicio, de modo que si quisiéramos imprimir su valor lo harías así: echo $VARIABLE.
Un ejemplo sería:
NOMBRE="Jorge Luis"
echo "Bienvenido $NOMBRE"
Que su salida sería:
Bienvenido Jorge Luis
También debemos conocer que existen variables de entorno las cuales podemos usar en nuestros scripts. Hay que tener mucho cuidado con estas variables, ya que un cambio podría implicar un mal funcionamiento no solo del programa si no de la terminal en si.
- $HOME : Contiene la ruta del directorio home del usuario.
- $PATH : Contiene los directorios donde se encuentran los ejecutables
- $TERM : nombre del a terminal (Config Terminal)
- $BASH : Ruta del interprete bash
- $PWD : Directorio Actual
Los argumentos realmente se manejan como variables por que lo son de cierta forma, así que por ejemplo, si quisiéramos saber cual es el primer argumento que nos mandan tendríamos que usar $1, $2 para el segundo y así sucesivamente.
Por ello pongo la siguiente lista para saber como actúan:- $* : Todos los argumentos
- $# : Numero de argumentos recibidos
- $$ : Identificador del proceso
- $? : Resultado de la ejecución del comando anterior
- $@ : Crea y devuelve un Array con todos los argumentos con posición
- $0 : Nombre del script
- $1 : Primero argumento
- $2 : Segundo Argumento
- $n : n-ésimo argumento
#!/bin/bash
echo "Variables y Argumentos"
echo "\\$HOME: $HOME"
echo "\\$PATH: $PATH"
echo "\\$TERM: $TERM"
echo "\\$$: Identificador del proceso: $$"
echo "\\$?: Resultado de la ejecución del comando anterior: $?"
echo "\\$@: Crea y devuelve un Array con todos los argumentos con posición: $@"
echo "\\$*: Todos los argumentos: $*"
echo "\\$#: Cantidad de Argumentos: $#"
echo "\\$0: Nombre del archivo: $0"
echo "\\$1: Primer Argumento: $1"
echo "\\$2: Segundo Argumento: $2"
Ejecutamos el script:
$ chmod +x script02 $ ./script02 uno dos tres
Variables y Argumentos $HOME: /home/lesthack $PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games $TERM: xterm $$: Identificador del proceso: 8671 $?: Resultado de la ejecución del comando anterior: 0 $@: Crea y devuelve un Array con todos los argumentos con posición: uno dos tres $*: Todos los argumentos: uno dos tres $#: Cantidad de Argumentos: 3 $0: Nombre del archivo: ./script02 $1: Primer Argumento: uno $2: Segundo Argumento: dos
Así que como lo hemos visto, ya podemos tratar los argumentos para alguna posible acción.
Jorge Hernandez :: http://jorgeluis.com.mx