Bash Script a While Loop mientras lee Stdin

Bash Script a While Loop mientras lee Stdin
El concepto "transmisión" en una computadora se aplica a algo que podría mover datos. Cualquier instrucción que esté ejecutando en el terminal estaría en cualquier posición del flujo. Estas posiciones pueden ser un origen o un flujo de salida. Obtengamos una descripción general rápida de la transmisión de Stdin específica. En Linux, Stdin se refiere a la entrada predeterminada o estándar. La entrada que requiere debe ser un texto. Para adquirir datos o información de usted, es el controlador de archivos que la lectura de su procedimiento. Casi todos los flujos se ven en Linux como si fueran directorios. Podemos leer/escribir información de todas estas transmisiones, exactamente como puede leer/escribir un documento. Mediante el uso de un número de descriptor de archivo especial relacionado con él, proporciona un excelente enfoque para acceder a un documento. Se han asignado valores especiales a cada uno de estos a lo largo de la situación de tales corrientes. Stdin tiene un valor de 1.

Stdin: 1

Comencemos por comprender a través de la práctica sobre la transmisión de Stdin usando mientras que los bucles. Al principio, tendremos un ejemplo básico del stdin como lectura. Ejecutar la instrucción a continuación. La instrucción exigiría la entrada del teclado. En esto, a través de Stdin, la herramienta de lectura recibe el texto.

$ Leer

Ejemplo 01:

Crear un nuevo archivo, "Entrada.sh ”y agrégase el script adjunto. Hemos estado utilizando el bucle While para leer el texto por un usuario desde el terminal e imprimirlo. El script se nombra con un "/dev/stdin" como el primer parámetro de $ 1, en el que el enfoque correspondiente lee la entrada regular de la consola. Guardar este archivo y cerrarlo.

Abra el terminal y ejecute el archivo recientemente actualizado "Entrada".sh "como:

Input $ Bash.mierda

Cuando ejecute el archivo usando el comando bash, será saltado a la siguiente línea para escribir algo. Como puede ver a continuación, el usuario ha escrito un texto de una línea y presione Entrar.

El texto escrito por un usuario se leerá primero e se imprimirá en la siguiente línea como se muestra a continuación.

Incluso puede proporcionar un espacio entre su entrada de texto como se muestra a continuación.

Ejemplo 02:

Ahora leeremos el texto del archivo. Actualizar el mismo archivo "Entrada.SH "proporcionando el nombre de archivo" Script.sh ”como el primer parámetro de $ 1. El enfoque correspondiente se lee en este documento.

Tenemos la siguiente información de texto en el archivo "Script.sh "como abajo. Comprobemos cómo funciona.

Ejecutar el archivo "Entrada.sh ”usando el comando bash. Verá que la transmisión de lectura se lee en el archivo proporcionado "Script.sh ”e imprímalo en la terminal como se muestra a continuación.

Input $ Bash.mierda

Ejemplo 03:

Tengamos un ejemplo para leer cada directorio uno por uno usando stdin. Tienes que considerar el parámetro -u con la lectura. En esto, "-u 1" implica "leer desde Stdin."En este código," línea "representa el nombre de archivo, y el incremento" i ++ "se usa para saltar al siguiente directorio o archivo. También contará el número de archivo que también se ha leído. Ejecutemos este código para verificar lo que sucede después.

Ejecutar el archivo bash "entrada.mierda. Le pedirá que ingrese algún texto para saltar al siguiente archivo. Aquí "Comm" representa el nombre del primer archivo.

Input $ Bash.mierda

Mientras continúa esto, puede ver que tenemos una lista de archivos que hemos pasado.

Ejemplo 04:

En este ejemplo, tenemos dos archivos relacionados para leer desde. Asigne los privilegios requeridos a ambos archivos utilizando el comando "CHMOD" como se muestra a continuación.

chmod u+x nombre de archivo

Escriba el código a continuación en el archivo "Entrada.mierda. Hasta que el bucle "while" obtenga líneas, imprimirá esas líneas. Mientras que la "línea" se refiere a otro archivo "script.mierda.

Tenemos el siguiente código en el archivo "script.mierda. Mientras se ejecuta el bucle, está imprimiendo el número de línea.

Ejecutar ambos archivos usando ""./"Al comienzo del nombre de archivo y separarse usando" "|" en la cáscara. Verá que está imprimiendo los números de línea mientras imprime el texto de los archivos también. Es un método muy simple para correlacionar dos archivos o su contenido.

ps ./guion.sh | ./aporte.mierda

Ejemplo 05:

Terminemos este tema al tener este ejemplo simple y eficiente. Tenemos un archivo "script.sh ”con el siguiente contenido o nombres de personas. Leeremos estos nombres uno por uno de otro archivo.

Actualizar el archivo "Entrada.SH: Con el siguiente guión. En este guión, tenemos un bucle de tiempo para elaborar "Stdin" funcionando. Hemos estado usando leer "Read -r" mientras leemos de otro archivo como otra entrada estándar. Por otro lado, usando "-u" como específico de Bash, la salida estándar del usuario en el terminal. Aquí, el "nombre" es el texto o el contenido del archivo "Script.mierda. La opción "-p" se usa para "leer". La declaración de lectura leerá el "nombre" de otro archivo y le preguntará si desea eliminarlo o no. La palabra clave "IP" se utiliza para la respuesta del usuario para afirmar la acción de la eliminación. Cualquiera que sea la respuesta del usuario, la imprimirá. En la instrucción "IF", verificará si la entrada estándar del usuario es la misma que "y", entonces imprimirá algún mensaje que mencione que ha estado eliminando el "nombre". Este proceso se reiterará hasta el último contenido del archivo "Script.mierda.

Echemos un vistazo a la salida del código anterior. Ejecutar el archivo usando el comando bash. El sistema le preguntará si desea eliminar este "nombre" o no. Ingrese "Y" y toque "Enter".

Input $ Bash.mierda

Aquí al presionar "y", imprimirá "y" y mostrará un mensaje de que ha estado eliminando el "nombre" particular. Después de eso, cambiará a otro "nombre".

Le pedirá que elimine los nombres hasta que todos los nombres o contenido del archivo "Script.SH ”se han reducido como a continuación.

Conclusión:

Hemos pasado magníficamente todos los ejemplos simples de entrada estándar mientras usamos el bucle "while" en el script bash.