| Programación en shell: Administración de linux: Una guía básica | ||
|---|---|---|
| Anterior | Programas de shell | Siguiente |
Además de las asignaciones de valores a variables vista con anterioridad, que consistía en utilizar el operador de asignación (=), podemos asignarle valores dependiendo del estado de la variable.
Cuando una variable no está definida, o lo está pero contiene un valor nulo, se puede hacer que se use un valor predeterminado mediante la siguiente la expresión:
$ {variable:-valorpredeterminado}
|
Esta expresión devuelve el contenido de variable si está definida y tiene un valor no nulo. Por ejemplo si la variable resultado inicialmente no esta definida:
$ echo ${resultado}
$ echo "E1 resultado es: {resultado:-0}"
E1 resultado es: O
$ resultado=1
$ echo "E1 resultado es: ${resultado:-0}"
E1 resultado es: 1
|
A los parámetros posicionales podemos acceder como:
{$1: -o}
|
En algunas ocasiones interesa utilizar un valor predeterminado sólo en el caso de que la variable no esté definida. La expresión que se utiliza para ello es algo diferente de la anterior:
${variable- valorpredeterminado}
|
Consultar el ejmplo anterior.
Existe una expresión opuesta a la anterior. En este caso, si la variable está definida y contiene un valor no nulo, entonces en vez de usarse dicho valor, se utiliza el que se especifica. En caso contrario, el valor de la expresión es la cadena nula. La expresión para esto es:
$ {variable: +valorpredeterminado}
Por ejemplo:
$ resultado=10
$ echo ${resultado:+5}
5
$ resultado=
$ echo ${resultado:+30}
$
|
En algunas ocasiones puede también interesar que el comportamiento anterior sólo suceda cuando la variable no esté definida. La expresión para ello es:
$ {variable+valorpredeterminado}
|