Funciones
Como en cualquier lenguaje de programación, en Bash también se pueden crear funciones para factorizar código y hacer scripts más eficientes.
Sintaxis
function nombre_funcion {
#Comandos
}
Ejemplos:
Función para crear un directorio.
function crea_directorio {
mkdir mi_directorio
}
Función para limpiar la terminal.
function limpia_terminal {
clear
}
En script quedarían de la siguiente forma:
#!/bin/bash
function crea_directorio {
echo "Creando directorio"
mkdir mi_directorio
}
function limpia_terminal {
echo "Limpiando pantalla"
clear
}
crea_directorio
limpia_terminal
Argumentos
En Bash se pueden usar argumentos desde línea de comandos que son enviados a un script como variables.
Las cuales son identificadas por números:
[$1] Es el primer argumento desde línea de comandos.
[$2] Es el segundo y así sucesivamente.
[$#] Contiene el número de argumentos que son recibidos desde la línea de comandos.
[$*] Contiene todos los argumentos que son recibidos desde la línea de comandos, guardados en la mismas variable.
Nota: las variables $# y $* no incluyen a la variable $0.
Ejemplo:
#!/bin/bash
#Función para mostrar mensaje
function muestra_uso {
echo "$0 directorio_origen directorio_destino"
exit 1
}
#Programa principal
if [$# -ne 2]; then
muestra_uso
else #Hay dos argumentos
if [-d $1]; then
directorio_origen=$1
else
echo 'El directorio de origen no es válido'
muestra_uso
fi
if [-d $2]; then
directorio_destino=$2
else
echo 'El directorio destino no es válido'
muestra_uso
fi
fi
echo "Directorio origen es ${directorio_origen}\n"
echo "Directorio destino es ${directorio_destino}\n"
Para probarlo, se ejecutan los siguientes comandos:
mkdir origen destino
sh muestra_mensaje origen destino
sh muestra_mensaje no_origen no_destino
Nota: los argumentos de una función en Bash, se comportan de la misma forma que los argumentos desde línea de comandos.
Ejemplo:
Función con parámetros.
#!/bin/bash
function imprime_palabras {
echo $1 $2
}
function salir {
exit
}
imprime_palabras Hola mundo
salir
Si se quieren imprimir n cantidad de palabras entonces se utiliza:
Espero esta información te haya sido de utilidad. En la siguiente nota te platicaré sobre Bash: ciclos (for). Hasta entonces.