5 ejemplos prácticos del comando de lectura en Linux

¿Qué es el comando de lectura en Linux?

los leer comando en Linux es una forma para que los usuarios interactúen con la entrada tomada desde el teclado, que podría ver referido como Entrada estándar (entrada estándar) u otras descripciones similares.

En otras palabras, si quieres que tu bash script toma información del usuario, tendrá que usar el comando de lectura.

voy a escribir algo sencillo bash scripts para mostrarle el uso práctico del comando de lectura.

Leer ejemplos de comandos

El comando de lectura puede ser confuso para comenzar, especialmente para aquellos que son nuevos en los scripts de shell. Los scripts que voy a usar aquí son muy simples de entender y deberían ser fáciles de seguir, especialmente si está practicando junto con el tutorial.

Conceptos básicos de programación

Con casi todos los programas o secuencias de comandos, desea obtener información de un usuario (entrada) y decirle a la computadora qué hacer con esa información (salida).

Cuando usa leer, se está comunicando con el bash terminal que desea capturar la entrada del usuario. De forma predeterminada, el comando creará una variable para guardar esa entrada.

read [options] variable_name

Ahora veamos algunos ejemplos del comando de lectura para comprender cómo puede usarlo en diferentes situaciones.

1. Leer comando sin opciones

Cuando escribe leer sin ninguna opción adicional, deberá presionar Intro para iniciar la captura. El sistema capturará la entrada hasta que vuelva a pulsar Intro.

Por defecto, esta información se almacenará en una variable llamada $REPLY.

Para hacer las cosas más fáciles de seguir por primera vez exampleusaré el El símbolo se mostrará cuando se presione la tecla enter.

read ↵
hello world ↵
echo $REPLY ↵
hello world

Más sobre variables

Como mencioné anteriormente, el $REPLY variable está integrada en readpor lo que no tienes que declararlo.

Eso podría estar bien si solo tiene una aplicación en mente, pero lo más probable es que desee usar sus propias variables. Cuando declara la variable con lectura, no necesita hacer nada más que escribir el nombre de la variable.

Cuando quieras llamar a la variable, usarás un $ delante del nombre. Aquí hay un example donde creo la variable Linux_Handbook y asignarle el valor de la entrada.

Puede usar el comando echo para verificar que el comando de lectura hizo su magia:

read Linux_Handbook ↵
for easy to follow Linux tutorials.
echo $Linux_Handbook ↵
for easy to follow Linux tutorials.

Recordatorio: los nombres de las variables distinguen entre mayúsculas y minúsculas.

2. Opción rápida -p

Si está escribiendo un script y desea capturar la entrada del usuario, hay una opción de lectura para crear un mensaje que puede simplificar su código. La codificación tiene que ver con la eficiencia, ¿verdad?

En lugar de usar líneas adicionales y comandos de eco, simplemente puede usar el -p bandera de opciones El texto que escriba entre comillas se mostrará según lo previsto y el usuario no necesitará presionar Intro para comenzar a capturar la entrada.

Entonces, en lugar de escribir dos líneas de código como esta:

echo "What is your desired username? "
read username

Puedes usar el -p opción con comando de lectura como este:

read -p "What is your desired username? " username

La entrada se guardará en la variable $nombre de usuario.

3. Opción “Secreto”/Silencio -s

Escribí un simple bash script para demostrar la siguiente bandera. Primero eche un vistazo a la salida.

bash secret.sh
What is your desired username? tuxy_boy
Your username will be tuxy_boy.
Please enter the password you would like to use:

You entered Pass123 for your password.
Masking what's entered does not obscure the data in anyway.

Aquí está el contenido de secret.sh si desea recrearlo.

#!/bin/bash
read -p "What is your desired username? " username
echo "Your username will be" $username"."
read -s -p "Please enter the password you would like to use: " password
echo
echo "You entered" $password "for your password."
echo "Masking what's entered does not obscure the data in anyway."

Como puedes ver, el -s opción enmascaró la entrada cuando se ingresó la contraseña. Sin embargo, esta es una técnica superficial y no ofrece una seguridad real.

4. Usando un límite de caracteres con opción de lectura -n

Puede agregar una restricción a la entrada y limitarla a n caracteres de longitud.

Usemos el mismo script de antes, pero modifíquelo para que las entradas estén limitadas a 5 caracteres.

read -n 5 -p "What is your desired username? " username

Simplemente agregue -n N donde N es el número de su elección.

He hecho lo mismo con nuestra contraseña.

bash secret.sh
What is your desired username? tuxy_Your username will be tuxy_.
Please enter the password you would like to use:
You entered boy for your password.

Como puede ver, el programa dejó de recopilar información después de 5 caracteres para el nombre de usuario.

Sin embargo, todavía podría escribir MENOS de 5 caracteres siempre que presione después de la entrada.

Si desea restringir eso, puede usar -N (en lugar de -n) Esta modificación hace que se requieran exactamente 5 caracteres, ni menos, ni más.

5. Almacenar información en una matriz -a

También puede usar el comando de lectura en Linux para crear sus propios arreglos. Esto significa que podemos asignar fragmentos de entrada a los elementos de una matriz. De forma predeterminada, la tecla de espacio separará los elementos.

[email protected]:~$ read -a array
abc def 123 x y z
[email protected]:~$ echo  ${array[@]}
abc def 123 x y z
[email protected]:~$ echo  ${array[@]:0:3}
abc def 123
[email protected]:~$ echo  ${array[0]}
abc
[email protected]:~$ echo  ${array[5]}
z

Si es nuevo en los arreglos, o está viendo cómo en bash por primera vez, voy a desglosar lo que está sucediendo.

  • Enter elementos deseados, separados por espacios.
  • Si ponemos solo la variable @, iterará e imprimirá todo el ciclo.
  • El símbolo @ representa el número de elemento y con los dos puntos después, podemos indicar iterar desde el índice 0 al índice 3 (como está escrito aquí).
  • Imprime el elemento en el índice 0.
  • Similar al anterior, pero demuestra que los elementos están separados por el espacio

Consejo adicional: agregar una función de tiempo de espera

También puede agregar un tiempo de espera a nuestra lectura. Si no se captura ninguna entrada en el tiempo asignado, el programa continuará o finalizará.

[email protected]:~$ read -t 3
[email protected]:~$

Puede que no sea obvio mirar la salida, pero la terminal esperó tres segundos antes de agotar el tiempo y finalizar el programa de lectura.

Conclusión

Espero que este tutorial haya sido útil para comenzar con el comando de lectura en Linux. Como siempre, nos encanta saber de nuestros lectores sobre el contenido que les interesa. ¡Deje un comentario a continuación y comparta sus pensamientos con nosotros!

Related Posts