Categoría: Linux
Comando Read Linux: Cómo Hacer Peticiones al Usuario en Scripting
Comando Read Linux, una herramienta esencial para facilitar tareas de scripting en Linux. Este comando permite interactuar con el usuario, solicitando la introducción de datos, como contraseñas o valores de parámetros. A continuación, veremos varios ejemplos prácticos del comando read, esperando que os resulten útiles.
Introducción al Comando Read en Bash
El comando read es fundamental en Bash para obtener entradas del usuario. Es común en scripts que requieren la intervención del usuario, por ejemplo, para introducir una contraseña o el valor de un parámetro. Para comenzar a usar el comando read, necesitamos crear un archivo .sh utilizando un editor de texto como vi, nano, o gedit.
Primero, creamos un archivo vacío llamado read.sh
. Después, le damos permisos de ejecución con el siguiente comando:
chmod +x read.sh
Una vez creado el archivo y otorgados los permisos necesarios, podemos probar los siguientes ejemplos.
Ejemplo Básico del Comando Read
En este ejemplo básico, simplemente introducimos el comando read
junto con una variable, y luego mostramos el valor introducido por pantalla.
#!/bin/bash
echo Introduce tu usuario
read usuario
echo Bienvenido, $usuario
Este código puede optimizarse combinando la pregunta y la asignación de la variable en la misma línea usando el parámetro -p
de read
.
#!/bin/bash
read -p "Introduce tu usuario: " usuario
echo Bienvenido, $usuario
Solicitud de Contraseñas
Si probáis los ejemplos anteriores, notaréis que el valor introducido es visible. Para solicitar una contraseña, donde necesitamos ocultar los caracteres introducidos, usamos el parámetro -s
.
En este ejemplo, pediremos el usuario y la contraseña, mostrando ambos valores posteriormente en pantalla solo para comprobar que funciona. En un entorno de producción, usaríamos esa contraseña para realizar otra acción sin mostrarla.
#!/bin/bash
read -p "Usuario: " usuario
read -sp "Bienvenido, $usuario, introduce tu contraseña: " password
echo -e "\nEl usuario es $usuario y la contraseña es $password
En el ejemplo anterior, combinamos los parámetros -p
para introducir un mensaje y -s
para ocultar la contraseña. Usamos echo -e
para insertar una nueva línea (\n) en la salida.
Petición de Múltiples Valores
Podemos solicitar múltiples valores al usuario en una sola línea utilizando el comando read. Esto es útil cuando necesitamos varios parámetros en una única entrada.
#!/bin/bash
read -p "Introduce tu nombre, edad y ciudad: " nombre edad ciudad
echo "Nombre: $nombre, Edad: $edad, Ciudad: $ciudad"
En este ejemplo, el usuario introduce tres valores separados por espacios, que luego son asignados a las variables nombre
, edad
, y ciudad
.
Uso de Delimitadores Personalizados
El comando read también permite usar delimitadores personalizados para separar los valores introducidos. El siguiente ejemplo utiliza dos puntos (:) como delimitador.
#!/bin/bash
IFS=":" read -p "Introduce tu nombre:edad:ciudad: " nombre edad ciudad
echo "Nombre: $nombre, Edad: $edad, Ciudad: $ciudad"
El parámetro IFS
(Internal Field Separator) se usa para definir el delimitador, en este caso, el símbolo dos puntos (:).
Tiempo de Espera y Valores Predeterminados
Podemos establecer un tiempo de espera para la entrada del usuario y un valor predeterminado en caso de que no se introduzca nada dentro del tiempo especificado.
#!/bin/bash
read -t 5 -p "Introduce tu nombre (tienes 5 segundos): " nombre
nombre=${nombre:-"Invitado"}
echo "Hola, $nombre"
En este ejemplo, el script espera 5 segundos para que el usuario introduzca su nombre. Si no se introduce ningún valor, nombre
se establece como «Invitado».
Confirmación de Entradas
A veces, es útil pedir al usuario que confirme su entrada. Esto puede lograrse fácilmente con read y un simple bucle.
#!/bin/bash
while true; do
read -p "Introduce tu usuario: " usuario
read -sp "Introduce tu contraseña: " password
echo -e "\nUsuario: $usuario, Contraseña: $password"
read -p "¿Son correctos estos datos? (s/n): " confirmacion
case $confirmacion in
[Ss]* ) break;;
[Nn]* ) echo "Por favor, inténtalo de nuevo.";;
* ) echo "Por favor, responde s (sí) o n (no).";;
esac
done
echo "Datos confirmados. Continuando..."
Este script pide al usuario que confirme su nombre de usuario y contraseña. Si el usuario responde con «s» o «S», el bucle se rompe y el script continúa. Si responde «n» o «N», se le pide que vuelva a introducir los datos.
Conclusión
El comando read en Bash es una herramienta poderosa y versátil para interactuar con el usuario en scripts de Linux. Hemos visto cómo utilizarlo en ejemplos básicos, pedir contraseñas, solicitar múltiples valores, usar delimitadores personalizados, establecer tiempos de espera y valores predeterminados, y confirmar entradas. Con estos conocimientos, podéis mejorar la interactividad y funcionalidad de vuestros scripts en Linux.
SSPI handshake failed with error code 0x8009030c SQL Server
Error 15025 SQL Server. The server principal already exists
Auditoría descubriendo las Conexiones en SQL Server
Entendiendo Kerberos en SQL Server: Seguridad y Autenticación