El comando read de Linux

En read de Bash lee una línea de la entrada estándar y la divide en campos.

Ejemplos del comando read de Linux

El comando read en Linux es un comando incorporado que se utiliza en scripts de shell y líneas de comandos para leer una línea de entrada de la entrada estándar (stdin) y asignarla a una variable. Aquí tienes algunos ejemplos de cómo utilizar el comando read:

Uso básico:

read varname
echo "You entered: $varname"

Este script espera a que el usuario introduzca un texto, que se almacena en la variable varname. Cuando el usuario pulsa Intro, el script muestra el texto introducido.

Lectura de Valores Múltiples:

echo "Enter two values:"
read var1 var2
echo "You entered: $var1 and $var2"

Permite al usuario introducir dos valores distintos, que se almacenan en var1 y var2. Los valores deben estar separados por espacios.

Entrada silenciosa (útil para contraseñas):

read -s -p "Enter your password: " password
echo
echo "Password entered."

La opción -s hace que read sea silenciosa, lo que significa que no devuelve la entrada al terminal. Esto es útil para información sensible como las contraseñas. La opción -p te permite mostrar un prompt.

Lectura de una línea completa incluyendo espacios:

IFS= read -r line
echo "You entered: $line"

Si configuras IFS (Separador interno de campos) con un valor vacío y utilizas -r (para evitar que se interpreten los escapes de barra invertida), se lee toda la línea de entrada, incluidos los espacios, en la variable line.

Establecer un tiempo de espera:

read -t 5 -p "Enter your name (you have 5 seconds): " name
echo "Hello, $name"

La opción -t establece un tiempo de espera. En este ejemplo, read esperará 5 segundos a que el usuario introduzca su nombre.

Lectura de un archivo:

while IFS= read -r line
do
  echo "Line: $line"
done < filename.txt

Este script lee una a una las líneas de un archivo llamado filename.txt.

Opciones de la línea de comandos del comando leer

Éstas son algunas de las opciones más utilizadas:

  • -r: Esta opción impide que las barras invertidas actúen como caracteres de escape. Con -r, las barras invertidas se tratan como caracteres literales. Esto se recomienda generalmente para garantizar que la entrada se lee con precisión, sin ninguna interpretación no intencionada de los caracteres con barra invertida.
  • -p: Esta opción te permite especificar un prompt que se muestra al usuario. Suele utilizarse cuando interactúas con el usuario y esperas su respuesta. Por ejemplo, read -p "Enter your name: " name mostraría «Introduce tu nombre: » y luego almacenaría la entrada del usuario en la variable name.
  • -a array: Esta opción lee de la entrada estándar y asigna las palabras leídas a una matriz indexada. Esto es útil para leer una línea de entrada en una matriz, donde cada palabra se convierte en un elemento de la matriz.
  • -d delim: La opción -d especifica un carácter delimitador para terminar la línea de entrada, en lugar de una nueva línea. Por ejemplo, read -d ":" var leerá la entrada hasta que encuentre el carácter dos puntos.
  • -n num: Esta opción lee num caracteres en lugar de una línea completa. Es útil cuando necesitas restringir la entrada a un número específico de caracteres.
  • -s: Modo silencioso. Cuando se utiliza -s, la entrada tecleada por el usuario no se muestra en la pantalla. Se utiliza normalmente para entradas sensibles, como contraseñas.
  • -t timeout: Especifica un tiempo de espera en segundos. Si el usuario no realiza ninguna entrada en el número de segundos especificado, el comando read finalizará. Esto es útil para los scripts en los que no quieres esperar indefinidamente la entrada del usuario.
  • -u fd: Esta opción indica a read que lea la entrada del descriptor de archivo fd en lugar de la entrada estándar. Se trata de una función avanzada que se utiliza en situaciones en las que estás manipulando descriptores de archivo en tu script.
  • -N num: Similar a -n, pero lee num caracteres en lugar de bytes. Esto es especialmente relevante en el contexto de caracteres multibyte.
  • -E: Utilizada con -p, esta opción desactiva la interpretación de los escapes de barra invertida y la continuación de línea en la cadena de consulta.
  • -i text: Esta opción proporciona un texto inicial para la lectura. Es especialmente útil para proporcionar un valor por defecto que el usuario pueda editar.

El comando read es una potente herramienta de Bash para manejar las entradas del usuario y analizar el texto. Puedes combinar estas opciones según necesites para adaptarlas a tus necesidades específicas.

También te podría gustar...