Variables de shell
De LuniWiki
Contenido |
Substitución de Variables
- var=valor
asigna valor a la variable var
- ${var}
utiliza el valor de la varible var los corchetes son opcionales pero pueden ser utiles
- ${var:-valor}
utiliza el valor de var si esta asignada y sino utiliza el valor dado por valor
- ${var:=valor}
utiliza el valor de var si esta asignada y sino utiliza el valor daor por valor y se lo asigna a var
- ${var:?valor}
utiliza el valor de var si esta asignada y sino imprime valor. Si no se da valor imprime "parameter null or not set."
- ${var:+valor}
utiliza valor si var esta asignada
Asignación de variables numericas
Esto funciona en bash por lo menos
#!/bin/bash numeroA=2 numeroB=5 frase="es correcto" suma=$[$numeroa+$numerob] multiplica=$[$numeroa*$numerob] divide=$[$numeroa/$numerob] resta=$[$numeroa-$numerob] echo "2 + 5 = $suma $frase" echo "2 * 5 = $multiplica $frase" echo "2 / 5 = $divide $frase" echo "2 - 5 = $resta $frase"
Referencia indirecta de variables
En el caso que queramos que una variable sea la evaluación de otra variable. tenemos que realizarlo en 2 pasos. Por ejeplo si tenemos una vaiable que es EXT y $EXT es JPG y el valor de la variable $JPG es imagen.jpg, si queremos que una variable FICHERO coja directamente el valor imagen.jpg unicamente desde la variable EXT (por que estemos en un bucle por ejemplo) tenemos que usar el comando eval
- Ejemplo
a=letra letra=z eval a=\$$a echo $a #Devuelve z
Variables embebidas de la shell
$# Numeros de argumentos dados en la línea de comandos
$- Options currently in effect (No se a que se refiere el autor)
$? Valor de salida del ultimo comando ejecutado
$$ PID del proceso actual
$! PID del ultimo proceso lanzado en background
$0 Primera palabra del la línea de comandos (es decir el comando)
$n Argumento n de la línea de comando
$* Todos los argumentos de la línea de comandos ("$1 $2 ...")
"$@" Todos los argumentos de la línea de comandos,
separados individualmente ("$1" "$2" ...)
Referencias
- Unix in a Nutshell (O'Reilly) ISBN: 1-56592-001-5
- Como de introducción al Shell scripting sobre Bash
--Daniel Simao 18:19, 5 Dec 2005 (CET)
