miércoles, 22 de abril de 2009

La instruccion declare en Bash

A pesar de que rara vez se usa, la instrucción declare (declarar) de bash tiene un par de opciones bien útiles. Puede marcar variables como de solo lectura y tambien marcarlas como si solo sean números.

Para declarar una variable como de solo lectura, usa la siguiente instrucción:

declare -r nombrevariable

Mira el siguiente código:

#!/bin/bash

a=13
declare -r a
echo $a
a=14
echo $a

Cuando lo ejecutas, la segunda asignación va a fallar:

$ sh decl.sh
13
decl.sh: line 6: a: variable de solo lectura

Para declarar una variable que acepte solo valores numéricos (integer), usa la siguiente instrucción:

declare -i varname

Mira este código:

#!/bin/bash

declare -i a
a=12
echo $a
a=hola
echo $a

Cuando lo ejecutas, la segunda asignación asignara cero a la variable en vez de la cadena "hola" que aparece en la instrucción:

$ sh decl2.sh
12
0

La instrucción declare tiene otras opciones; la opcion -a puede ser usada para declarar variables de tipo array (arreglo), pero no es necesario. Todas las variables pueden ser usadas como array sin una definición especifica. Parece ser que todas las variables son arrays y que la asignación sin esa opcion es igual que asignar con "[0]".

Mira el siguiente código:

#!/bin/bash

a=12
echo ${a[0]}
b[0]=13
echo $b

Cuando se ejecuta muestra:

$ sh arr.sh
12
13

Para mas información revisa la pagina man de bash (buscar por "declare").

Fuente.

No hay comentarios: