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:
Publicar un comentario