Script para recoger parámetros de usuario
Vamos a ver hoy un Script Shell Bash que nos va a permitir recoger información introducida por el usuario y aplicarle una serie de validaciones a dichos datos. Como siempre, recordad que se trata únicamente de un ejemplo básico y que en el mundo del scripting tendremos muchas más formas de implementar un requerimiento como este. El objetivo único del post es que os quedéis con la idea del proceso y que podáis reutilizar esta lógica en vuestros propios scripts.
Script para recoger parámetros de usuario
Pues nada, vamos con el asunto, ya sabéis que no me gusta darle muchas vueltas a la teoría. A continuación, voy a mostraros cómo sería el código de un script básico para recoger parámetros introducidos por el usuario.
# --------------------------------------------------
#!/bin/bash
# Validamos que se hayan introducido los parametros requeridos
# Si no se han introducido parametros, se los solicitamos la usuario
if [ $# -eq 0 ] ; then
# Solicitamos y recogemos el usuario introducido
read -p "Introduzca usuario: " usuario
# Solicitamos y recogemos password
# -s --> El contenido introducido por el usuario no se muestra por pantalla
read -sp "Introduzca contraseña: " password
echo ""
# Solicitamos al usuario que verifique la password
read -sp "Repita contraseña: " password_validar
# Validamos que la password ha sido correctamente introducida
if [ "$password" != "$password_validar" ] ; then
echo -e "\n${0}: Las passwords no coinciden"
exit 1
fi
else
# Si se han introducido parametros, los recogemos
# Si no hay password, introducimos un valor por defecto
usuario="$1"
password="${2:-Password1}"
fi
# Imprimimos usuario y password
echo -e "\n$usuario $password"
# --------------------------------------------------
Una vez tenéis la codificación completa del proceso, vamos a explicar un poco en detalle qué es lo más relevante del script anterior.
1º) En primer lugar, verificamos si el script está recibiendo parámetros:
# Validamos que se hayan introducido los parametros requeridos
if [ $# -eq 0 ] ; then
2º) Solicitamos al usuario que introduzca datos desde la línea de comandos:
# Solicitamos y recogemos el usuario introducido
read -p "Introduzca usuario: " usuario
3º) Para recoger la password, usamos un comando similar al anterior, pero indicando que el texto introducido por el usuario debe permanecer oculto en la consola.
# Solicitamos y recogemos password
# -s --> El contenido introducido por el usuario no se muestra por pantalla
read -sp "Introduzca contraseña: " password
4º) Validamos si la password introducida por el usuario es válida (esto es, si ha introducido las dos veces la misma contraseña). En caso de que sean distintas, no ha superado la doble confirmación y finalizamos la ejecución del script lanzando el comando "exit 1".
# Validamos que la password ha sido correctamente introducida
if [ "$password" != "$password_validar" ] ; then
echo -e "\n${0}: Las passwords no coinciden"
exit 1
fi
5º) Si el usuario ha proporcionado los parámetros a la hora de lanzar el script, procedemos a recogerlos en dos variables. Como se aprecia, si no ha enviado password, nuestro script establece un valor por defecto para la contraseña del usuario ("Password1").
# Si se han introducido parametros, los recogemos
# Si no hay password, introducimos un valor por defecto
usuario="$1"
password="${2:-Password1}"
Ejecutando el script de recogida de parámetros
A continuación, podemos ver cuál sería el resultado si procedemos a ejecutar el script anterior desde nuestra línea de comandos.
👉 En primer lugar, veamos qué es lo que deberíamos obtener si ejecutamos el script indicando usuario y password como parámetros de entrada.
Como vemos, se muestra por pantalla tanto el usuario como la password introducidas.
Si decidimos ejecutar el script únicamente con el nombre del usuario, el proceso nos asignará la password por defecto.
👉 Por otra parte, la otra forma de ejecutar el script es lanzando el proceso sin indicar ningún parámetro de entrada. En este escenario, el script nos solicitará que introduzcamos dicha información. En concreto, para la contraseña nos pedirá doble confirmación.
Y nada, con el detalle anterior ya tenemos más que suficiente para hacernos una idea de cómo se pueden requerir parámetros de entrada al usuario. Una vez comprendamos este ejemplo básico, no nos debería ser muy difícil trasladar la idea a nuestros propios scripts. De todas formas, si hay algo que no ha quedado explicado del todo, podéis dejarme las dudas que tengáis aquí abajo.
Saludos.
Comentarios
Publicar un comentario