Comando Read. Peticiones al usuario con scripting de Linux

gpsos

Hola, hoy vamos a hablaros sobre el comando read de Bash. Nos facilitará las tareas de scripting en Linux. Este comando, nos permite interactuar con el usuario para que pueda introducir datos. Es muy común que el usuario necesite introducir datos en un script. Por ejemplo, una contraseña, el valor de un parámetro, etc. Vamos a ver algunos ejemplos sobre el comando read, que esperamos que os sirvan.

Para empezar a probar el comando read, necesitamos crear un fichero .sh con vi, nano, gedit, o el editor que queramos. En este caso crearemos un fichero, por el momento vacío, que lo llamaremos read.sh. Una vez creado, necesitaremos darle permisos de ejecución, para que después podamos probar. Para eso usaremos:

chmod +x read.sh

Una vez creado el fichero y con permisos de ejecución, podremos probar los siguientes ejemplos.

Ejemplo básico del comando read

En este ejemplo, vemos el caso más básico que nos podemos encontrar, simplemente, en la misma línea introducir «read + variable» para luego mostrarla por pantalla.

#!/bin/bash
echo Introduce tu usuario
read usuario
echo Bienvenido, $usuario

El código anterior, se podría optimizar, introduciendo la pregunta con read, en vez de crear el mensaje con «echo«. Para ello, deberemos usar el parámetro – p de read. Por ejemplo:

#!/bin/bash
read -p "Introduce tu usuario: " usuario
echo Bienvenido, $usuario 

De esta forma, tendríamos la pregunta y la variable en la misma línea.

Petición de contraseñas

Si habéis probado los ejemplos anteriores, os habréis dado cuenta de que, el valor introducido por el usuario, es visible. Esta opción no es viable, si necesitamos pedir la contraseña, ya que necesitamos ocultar los caracteres introducidos. Para llevar a cabo esta acción, necesitaremos usar el parámetro -s, el cual nos permitirá ocultar en pantalla los caracteres introducidos, pero recoja correctamente los datos proporcionados.

En este ejemplo, pediremos el usuario y contraseña al usuario, y solo, para comprobar que funciona, mostraremos la contraseña posteriormente en pantalla. Este ejemplo, no tendría sentido en producción, ya que usaría esa contraseña para realizar otra acción y siempre ocultándola.

#!/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 dos parámetros vistos. El comando -p para introducir un mensaje y -s para ocultar la contraseña. Posteriormente, con echo, mostramos la contraseña por pantalla. Para que inserte una nueva línea (\n), usamos echo -e para que lo reconozca. Esta sería su salida:

Comando read en bash

Esperamos que os haya sido de utilidad esta entrada. Nos vemos en la siguiente entrega. Si no puedes esperar. Siempre puedes revisar nuestras entradas que incluyen comandos en bash.

Fuente: https://www.atareao.es/tutorial/scripts-en-bash/preguntar-al-usuario-en-bash/