Variables de shell

De LuniWiki

(Redirigido desde Variables)

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

--Daniel Simao 18:19, 5 Dec 2005 (CET)

Herramientas personales