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

Entradas populares de este blog

Componentes y Ventanas de Java Swing

Creación de Webservice SOAP básico

Fichero standalone del Servidor JBoss EAP