El comando declare
en Bash se utiliza para definir, modificar y mostrar variables y funciones. Su propósito principal es establecer atributos específicos para variables y funciones, además de mostrar su estado actual. En este artículo, aprenderás cómo usar el comando declare
en scripts de Bash con ejemplos prácticos en Linux.
Uso Básico del Comando declare
Definir una Variable
El comando declare
se puede usar para definir variables con atributos específicos:
declare my_var="Hola, Mundo!" echo "$my_var"
Esto funciona igual que una asignación de variable estándar, pero con la posibilidad de agregar atributos adicionales.
Convertir a Mayúsculas
Puedes usar la opción -u
para convertir el valor de una variable a mayúsculas automáticamente:
declare -u upper_var="hola mundo" echo "$upper_var" # Resultado: "HOLA MUNDO"
Convertir a Minúsculas
De manera similar, la opción -l
convierte el valor de una variable a minúsculas:
declare -l lower_var="HOLA MUNDO" echo "$lower_var" # Resultado: "hola mundo"
Listar Variables y sus Valores
Listar Todas las Variables
Para mostrar todas las variables declaradas y sus valores:
declare -p
Mostrar una Variable Específica
Si solo necesitas ver una variable específica, usa:
declare -p my_var
Esto mostrará algo como:
declare -- my_var="Hola, Mundo!"
Atributos Especiales con declare
Hacer una Variable de Solo Lectura
El atributo -r
establece una variable como de solo lectura, lo que impide su modificación:
declare -r readonly_var="Valor fijo" readonly_var="Nuevo valor" # Esto causará un error
Forzar una Variable a Ser un Entero
Con -i
, puedes definir que una variable sea tratada como un número:
declare -i num=10 num+=5 echo "$num" # Resultado: 15 num="hola" echo "$num" # Resultado: 0 (valor por defecto)
Crear un Arreglo Indexado
El atributo -a
define un arreglo indexado:
declare -a my_array=("manzana" "plátano" "cereza") echo "${my_array[@]}" # Resultado: manzana plátano cereza
Para acceder a elementos específicos:
echo "${my_array[0]}" # Resultado: manzana
Crear un Arreglo Asociativo
Con -A
(disponible desde Bash 4+), puedes crear arreglos asociativos:
declare -A my_assoc_array=([fruta]="manzana" [color]="rojo") echo "${my_assoc_array[fruta]}" # Resultado: manzana echo "${!my_assoc_array[@]}" # Resultado: fruta color
Exportar Variables a Subshells
Para que una variable esté disponible en procesos secundarios, utiliza -x
:
declare -x my_env_var="Valor exportado" bash -c 'echo "$my_env_var"' # Resultado: Valor exportado
Gestión de Funciones con declare
Definir y Listar Funciones
Puedes usar declare
para gestionar funciones. Por ejemplo, para listar todas las funciones:
declare -f
O solo los nombres de las funciones:
declare -F
Exportar Funciones
Con -xf
, puedes exportar funciones a procesos secundarios:
declare -xf my_function
Verificar Existencia de Variables o Funciones
El comando declare
también permite verificar si una variable o función existe:
if declare -p variable_name &>/dev/null; then echo "La variable existe" fi
Eliminar Atributos
Puedes usar +
en lugar de -
para eliminar atributos:
declare +i num num="hola" echo "$num" # Resultado: hola
Desactivar Variables y Funciones
Para eliminar variables o funciones, usa unset
:
unset my_var unset -f my_function
Resumen de Opciones de declare
-a
: Declara un arreglo indexado.-A
: Declara un arreglo asociativo (Bash 4+).-i
: Declara una variable como entero.-r
: Declara una variable o función como de solo lectura.-x
: Exporta una variable o función al entorno.-f
: Muestra las definiciones de funciones.-F
: Muestra solo los nombres de las funciones.-l
: Convierte el valor a minúsculas.-u
: Convierte el valor a mayúsculas.
Conclusión
El comando declare
es una herramienta poderosa en Bash que permite gestionar variables y funciones de manera eficiente, definiendo atributos especiales y mejorando el control sobre los scripts. Es ideal para trabajar con enteros, arreglos y variables de solo lectura, además de gestionar funciones con facilidad. Con estas opciones, puedes optimizar y estructurar mejor tus scripts en Linux.