-
Notifications
You must be signed in to change notification settings - Fork 0
04 Variables Alias y Funciones
- Variables
- Alias
- Funciones
- Variables, Alias y Funciones Persistentes
Una variable en un shell es una funcionalidad que permite al usuario guardar y reutilizar datos. Una variable puede almacenar información del sistema, de un programa o proporcionada por el mismo usuario. Las variables se definen asignando un valor a un nombre, y se almacenan temporalmente en la memoria hasta que finalice la sesión.
Podemos declarar una variable de la siguiente manera:
admin@server:~$ variable='valor'Para usar una variable basta con utilizar el símbolo $ antes del nombre de la
variable:
admin@server:~$ echo $variablePodemos eliminar una variable podemos utilizar el comando unset:
admin@server:~$ unset variableLas variables locales son aquellas que existen únicamente en la sesión actual del shell. Al cerrar la terminal, estas variables se eliminan automáticamente.
Podemos declarar una variable local de la siguiente manera:
admin@server:~$ variable1='un texto'Tip
Por convención, las variables locales se definen en minúsculas.
Las variables de entorno, también conocidas como variables globales, son aquellas que están disponibles para todos los procesos iniciados desde el shell actual, incluidos comandos, scripts y subshells. El sistema puede definir automáticamente ciertas variables de entorno al iniciar una sesión de usuario o abrir una nueva terminal.
Podemos declarar una variable de entorno directamente con el comando export:
admin@server:~$ export VARIABLE='10'Tip
Por convención, las variables de entorno se definen en mayúsculas.
Asimismo, podemos definir una variable local y convertirla en variable de
entorno con el comando export:
admin@server:~$ VARIABLE='10'
admin@server:~$ export VARIABLECon los comandos env, printenv, y export, podemos visualizar las variables
de entorno:
admin@server:~$ env
admin@server:~$ printenv
admin@server:~$ exportUn alias es un nombre alternativo (o sinónimo) de un comando. Estos son declarados para facilitar el uso de comandos largos y complejos.
Para declarar un alias, podemos ejecutar el comando alias
admin@server:~$ alias nombre-del-alias=comandoUn ejemplo común de un alias es el del comando ls -l, el cual su alias suele
ser ll:
admin@server:~$ alias ll='ls -l'Para ejecutar un alias, simplemente escribes el nombre del alias:
admin@server:~$ llPara visualizar los alias actuales, podemos ejecutar el comando alias:
admin@server:~$ alias
alias egrep='grep -E --color=auto'
alias fgrep='grep -F --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -lh'
alias lla='ls -lah'
alias ls='ls --color=auto'Para eliminar un alias, podemos ejecutar el comando unalias:
admin@server:~$ unalias nombre-del-aliasPor ejemplo:
admin@server:~$ unalias laUna función de shell, es un bloque de código que ejecuta una serie de instrucciones o comandos, pudiendo implementar funcionalidades de scripting (e.g., condicionales, loops).
Una función puede ser declarada de la siguiente forma:
admin@server:~$ function_name() {
> instrucciones
> }Por ejemplo:
hola_usuario() {
echo "¡Hola, usuario!"
}Tip
La función previa es muy simple y puede ser sustituida por un alias debido a
que es un simple comando y no una función (script) más desarrollada.
Para ejecutar una función escribimos solo el nombre de la función:
admin@server:~$ hola_usuarioExisten varios comandos para visualizar las funciones creadas (por el usuario o el sistema) según su función:
-
Para visualizar el código completo de las funciones definidas, podemos ejecutar el comando
declare -f:admin@server:~$ declare -f
-
Para visualizar solo los nombres de las funciones definidas, podemos ejecutar el comando
declare -F:admin@server:~$ declare -F
-
Para visualizar el código de una función definida en específico, podemos ejecutar el comando
declare -f:admin@server:~$ declare -f nombre-de-funcion
Para eliminar una función, podemos ejecutar el comando unset -f:
admin@server:~$ unset -f hola_usuarioUna función sin parámetros es aquella que no necesita que se le pase ningún argumento
Un ejemplo sencillo de una función sin parámetros es el siguiente:
hola_usuario() {
echo "¡Hola, usuario!"
}Una función con parámetros es aquella que necesita que se le pase un argumento
Un ejemplo sencillo de una función con parámetros es el siguiente:
hola_usuario() {
if [ $# -ge 1 ]; then
local usuario="$*"
echo "¡Hola, $usuario!"
else
echo "Error: no se proporcionaron argumentos"
echo "Solución: Proporciona mínimo un argumento"
fi
}La función previa valida si se proporcionó uno o más parámetros, de ser así, imprime saludo hacia el usuario (argumentos proporcionados), en caso contrario imprime un mensaje de error.
Para ejecutar una función con parámetros, es necesario ejecutar la función con un número de parámetros válido. Haciendo uso de la función anterior, tenemos los siguientes ejemplos de ejecución:
admin@server:~$ hola_usuario
Error: no se proporcionaron argumentos
Solución: Proporciona mínimo un argumento
admin@server:~$ hola_usuario Richard
¡Hola, Richard!
admin@server:~$ hola_usuario Richard Stallman
¡Hola, Richard Stallman!
admin@server:~$ hola_usuario "Richard Stallman"
¡Hola, Richard Stallman!Al declarar una variable, alias o función en la terminal, esta solo es válida
durante la sesión (o subsesiones) de la terminal, es decir, es temporal. Para
asegurarnos de que estas sean permanentes, es necesario declararlos en los
archivos de configuración de la shell (e.g., ~/.bashrc, ~/.zshrc), por
ejemplo:
#
# ~/.bashrc
#
...
# Variables de Entorno
export PATH="$HOME/bin:$PATH"
export EDITOR='nano'
export VISUAL='nano'
export LESS='-R'
export PAGER='less'
# Alias
alias ls='ls --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -lh'
alias lla='ls -lah'
alias grep='grep --color=auto'
alias egrep='grep -E --color=auto'
alias fgrep='grep -F --color=auto'
# Funciones
hola_usuario() {
if [ $# -ge 1 ]; then
local usuario="$*"
echo "¡Hola, $usuario!"
else
echo "Error: no se proporcionaron argumentos"
echo "Solución: Proporciona mínimo un argumento"
}- Definición y Estructura de un Shell
- Los Diferentes Tipos de Shell
- Definición y Sintaxis de un Comando
- Variables, Alias y Funciones
- Comandos de Utilidad y Consulta
- Linux como Sistema Multiusuario
- Introducción a los Usuarios y Grupos
- Gestión de Usuarios
- Gestión de Grupos
- Gestión de Contraseñas
- Búsqueda de Información de Usuarios y Grupos con
getent
- Atributos de Archivos: Propiedad y Permisos de los Archivos
- Cambio de Propiedad y Permisos
umask: Permisos Predeterminados de Archivos- Cambio de Identidad y Privilegios
- Gestión de Paquetes (Package Management)
- Compresión y Archivado de Archivos
- Optimización y Conversion de Archivos