En shell Script como en cualquier lenguaje de programación, se pueden crear y utilizar variables, pero se suelen denominar como parámetros. Existen varios tipos de parámetros:
- Si el nombre es un número se denominan parámetros posicionales.
- Si el nombre es un carácter especial se denominan parámetros especiales.
- El resto se denominan simplemente variables.
Vamos a intentar detallar cada uno de estos tipos.
1.Variables:
Sólo definición
VAR="" VAR=
Definición y/o inicialización/modificación
VAR=valor
Expansión (acceso a valor)
$VAR ${VAR}
Eliminación de la variable
unset VAR
Debemos de tener en consideración las siguientes observaciones al respecto:
1. Definición y uso:
Las variables sólo existen en el proceso shell en que son definidas (locales al proceso).
Las variables sólo son accesibles desde el momento de su definición hacia abajo del script, esto es, siempre deben definirse primero e invocarse después (no puede usarse una variable que es definida más adelante). Pueden utilizarse también dentro de funciones aunque se hayan declarado fuera de ellas. En el estándar POSIX todas las variables son globales, aunque existen variantes (como bash) que permiten la creación de variables locales a las funcione
Es importante tener en cuenta que las variables pueden ser creadas en el mismo momento que vayamos a hacer uso de de ellas, y no es necesario crear con anterioridad. Por lo cual primero hay que crear la variable y luego invocarla.
Si creamos una variable sin incianción, su valor por defecto será el valor nulo (Variable= null)
Con el comando set
(sin argumentos) puede ver todas las variables (y funciones) definidas en el shell actual.
2. Nombrado: téngase en cuenta que Linux es «case sensitive» (sensible a mayúsculas y minúsculas) en general, lo que incluye el nombre de las variable. Así, VAR
y var
serán tomadas como dos variables independientes . Para el nombre de una variable puede usarse :
- 1er carácter: una letra o el carácter de subrayado
_
. - 2º y posteriores caracteres: una letra, dígito o el carácter de subrayado.
3. Iniciación o Modificación del valor de una variable:
- Sí incluimos un espacio antes o después de signo =, el shell interpretara que el nombre de una variable, y no como la asignación de valor a tal variable.
- El valor asignado a la variable, el shell los tomará como una cadena de caracteres.eres.
- Si el valor de una variable contiene caracteres especiales, espacios, u otros elementos que puedan ser malinterpretados por el shell, es necesario que lo entrecomillemos o incluso incluir algún valor de escape, si fuera necesario.
4. Expansión de una variable uso de llaves: usaremos en nuestra sentencias los caracteres de {} justo tras las variable para añadir más caracteres a la misma.
echo «Mi variable es : ${var}1»
2. Variables de entorno:
Contienen información respecto al entorno de ejecución. Por ejemplo:
- $USER contiene el nombre del usuario actual
- $PWD directorio de trabajo actual
- $HOSTNAME nombre del ordenador
- $LANG idioma del sistema
- $OSTYPE tipo de sistema operativo
Otras variables útiles:
También disponemos de unas variables que contienen información referente a la propia ejecución del script. Son fundamentales las que hacen referencia al paso de parámetros (lo explicaremos más adelante).
- $0 El nombre del script
- $$ PID del proceso que se le ha asignado al script en ejecución
- $? Resultado devuelto por el último proceso ejecutado.
- $n la información de un parámetro en concreto, siendo n un número del parámetro
- $* todos los parámetros. Se presentan en una sola cadena de caracteres
- $@ todos los parámetros. Es una lista con un elemento por cada parámetro recibido
- $# la cantidad de parámetros con los que se ha invocado el script. Será una sola cifra