GNU/Linux >> Tutoriales Linux >  >> Linux

5 ejemplos prácticos del comando de lectura en Linux

¿Qué es el comando de lectura en Linux?

El comando de lectura en Linux es una forma para que los usuarios interactúen con la entrada tomada desde el teclado, que puede ver referido como stdin (entrada estándar) u otras descripciones similares.

En otras palabras, si desea que su script bash tome información del usuario, deberá usar el comando de lectura.

Voy a escribir algunos scripts bash simples 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 comunica con el terminal bash 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.

De forma predeterminada, esta información se almacenará en una variable llamada $REPLY .

Para hacer las cosas más fáciles de seguir para el primer ejemplo, usaré el El símbolo se mostrará cuando se presione la tecla Intro.

read ↵
hello world ↵
echo $REPLY ↵
hello world

Más acerca de las variables

Como mencioné anteriormente, el $REPLY la variable está integrada en read , para que no tengas 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 desee llamar a la variable, utilizará un $ delante del nombre. Aquí hay un ejemplo donde creo la variable Linux_Handbook y asígnele 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 variables distinguen entre mayúsculas y minúsculas.

2. Opción de solicitud -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 -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 -p opción con comando de lectura como este:

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

La entrada se guardará en la variable $nombredeusuario.

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

Escribí un script simple bash 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 puede 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. Usar un límite de caracteres con la 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.

Hice 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 eres nuevo en el mundo de las matrices o estás viendo cómo funcionan en bash por primera vez, te explicaré lo que sucede.

  • Ingrese los 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 extra: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. ¡Deja un comentario a continuación y comparte tus pensamientos con nosotros!


Linux
  1. 7 ejemplos prácticos del comando cd en Linux

  2. Comando cp en Linux:7 ejemplos prácticos

  3. Comando de apagado de Linux:5 ejemplos prácticos

  4. Ejemplos prácticos del comando Descomprimir en Linux

  5. 10 ejemplos prácticos de comandos de Linux nm

Los 50 Ejemplos Prácticos del Comando SED en Linux

15 ejemplos prácticos del comando Rsync en Linux

5 ejemplos prácticos de Tail Command en Linux

Comando echo en Linux:7 ejemplos prácticos

Ejemplos esenciales del comando ps en Linux

Ejemplos prácticos de comando ping en Linux