Bash para ejemplos de bucle

Bash para ejemplos de bucle
Los bucles son una parte muy esencial de cualquier tipo de lenguaje de programación o secuencia de comandos. Como cualquier otra programación estándar, los bucles se utilizan en la programación bash para realizar tareas repetitivas. Entre los tres tipos de bucles (mientras, do-while, for), para el bucle es muy útil para hacer varios tipos de tareas iterativas. Los usos básicos del bucle 'para' se muestran aquí. Pero el bucle 'para' se puede usar para realizar algunas tareas de nivel de avance. Si desea saber más usos de For Loop, debe leer este tutorial. 12 Los ejemplos más útiles del bucle 'para' se muestran en este tutorial para conocer otros usos específicos del bucle 'for' en Bash.

Sintaxis:

Para el bucle se puede usar por dos maneras en Bash. Una forma es 'For-In' y otra forma es la sintaxis de estilo C. Ambas sintaxis se muestran a continuación.

Para variable en la lista
hacer
Declaraciones
hecho
O
para ((expresión1; expresión2; expresión3))
hacer
Declaraciones
hecho

Ejemplo-1: para la variable de entrada del bucle para leer

La lista de cadenas o matriz predefinidas se puede leer fácilmente usando el bucle 'para' que se muestra en el tutorial anterior de For Loop. Cómo se puede leer el contenido de una variable de entrada utilizando el bucle 'for' se muestra en este ejemplo. Crear un archivo llamado 'forloop1.mierda'Con el siguiente script. Se tomará un valor de entrada de un texto de varias palabras después de ejecutar el script. Aquí, para el bucle se usa para dividir el texto en palabras en función del espacio en blanco e imprima cada palabra con la posición.

forloop1.mierda

#!/bin/bash
echo "Ingrese un texto de múltiples palabras"
Lea el texto
i = 1
para palabra en $ texto
hacer
echo "palabra no- $ i = $ word"
((i = $ i+1))
hecho

Producción:

Ejecutar el guión.

$ bash forloop1.mierda

Aquí, se toma un texto de 5 palabras, por lo que se imprimen cinco líneas de salida.

Ejemplo-2: para bucle con una declaración de descanso

La instrucción 'ruptar' se usa dentro de 'para' bucle para terminar desde el bucle. Crear un archivo llamado 'forloop2.mierda Con el siguiente código. El bucle 'para' se usa aquí para leer una lista de cuatro personas. Aquí se prueban dos condiciones aquí. Si el nombre de la persona es 'Amir ' Y el color es 'Azul' Entonces el bucle terminará después de imprimir el nombre y el color de la persona. Los valores de color del segundo para bucle se imprimirán hasta que el valor de color sea combinado.

forloop2.mierda

por nombre en Watson Micheal Sinha Amir Lily
hacer
if [$ name == 'amir']
entonces
Para el color en blanco rojo azul blanco
hacer
if [$ color == "azul"]
entonces
echo "El color favorito de $ name es $ color"
romper
demás
Echo "El color actual es $ color"
FI
hecho
FI
hecho

Producción:

Ejecutar el guión.

$ bash forloop2.mierda

La siguiente salida aparecerá después de ejecutar el script. Primero, se imprimen dos colores, 'rojo' y 'verde'. Cuando apareció el valor 'azul', imprimió el nombre y el valor de color de la persona y terminó desde el bucle para la instrucción 'break'.

Ejemplo-3: para la instrucción Continir con la declaración continua

La instrucción 'Continuar' se usa dentro del bucle 'para' para omitir cualquier declaración basada en una condición particular. Crea un archivo llamado 'forloop3.mierda Con el siguiente script. Aquí, una variable nombrada $ cursos se usa para asignar un valor de texto. El bucle 'para' se usa para leer la variable, $ cursos. El valor del texto se dividirá en función del espacio y leído por el bucle 'for'. Cuando el valor, 'Oracle' se combina con $ curso entonces imprimirá 'Oracle no está disponible ahora'. Para otros valores, 'la clase de $ curso se está ejecutando'. El curso que no está disponible no ejecutará la última declaración del bucle 'for' para la declaración continuar.

forloop3.mierda

#!/bin/sh
cursos = "Java Php Oracle VB.neto"
Para el curso en $ cursos
hacer
if [$ Course == 'Oracle']
entonces
echo "$ el curso no está disponible ahora"
continuar
FI
Echo "La clase de $ curso se está ejecutando"
hecho

Producción:

Ejecutar el guión.

$ bash forloop3.mierda

La siguiente salida aparecerá después de ejecutar el script.

Ejemplo-4: usando la salida del comando como la lista

Cualquier salida de comando BASH se puede usar en el bucle 'for' usando BackTick ('). Crea un archivo llamado 'forloop4.mierda Con el siguiente script. Aquí, 'ls *.TXT' El comando se usa en el bucle. Este comando generará una lista del archivo de texto desde el directorio actual. El bucle 'for' iterará cada nombre de archivo desde la salida del comando y lo almacenará en la variable $ nombre de archivo que imprimirá más tarde. Aquí, $ N La variable se usa para mostrar el número de archivo.

Forloop4.mierda

n = 1
para el nombre de archivo en 'ls *.TXT'
hacer
echo "archivo no- $ n: $ nombre de archivo"
((n ++))
hecho

Producción:

Ejecutar el guión.

$ bash forloop1.mierda

La siguiente salida aparecerá después de ejecutar el script.

Ejemplo-5: para el bucle para leer un rango

El bucle 'para' se puede usar para leer el rango de datos. El siguiente ejemplo lee una gama de caracteres y búsqueda de cada personaje en el texto o no. Crea un archivo llamado 'forloop5.mierda y agregue el siguiente script. Aquí, el rango, [A-Z] se usa en el bucle 'para'. Eso significa que el bucle para 'para' iterará por 26 veces por cada letra mayúscula. Cada personaje se busca en $ texto usando el comando 'AWK'. Si se encuentra algún personaje, almacenará el valor en $ resultado. Próximo. $ el resultado se verifica para cualquier contenido. Si no está vacío, un mensaje se imprimirá.

forloop5.mierda

text = "lenguaje de secuencias de comandos bash"
para c en a ... z
hacer
resultado = 'printf "$ text" | AWK "/$ C/" '
Si [[$ resultado != ""]]
entonces
Echo "$ C existe en el texto"
FI
hecho

Ejecutar el guión.

$ bash forloop5.mierda

Aquí, los alfabetos, 'b', 'l' y 's' encontrados en el texto, "lenguaje de secuencias de comandos". Entonces, se imprimen tres líneas de salida.

Ejemplo-6: para que el bucle lea un rango con el incremento

El ejemplo muestra cómo puede usar el bucle 'for' para encontrar todos los números uniformes dentro de un rango particular. Crea un archivo llamado 'forloop6.mierda y agregue el siguiente script. Aquí, se usa un rango de [2-20] en el bucle donde cada paso se incrementa en 2. El bucle iterará por 10 veces e imprimirá el número en cada paso.

Forloop6.mierda

Echo "Imprimir todos los números pares de 1 a 20"
para n en 2 ... 20 ... 2
hacer
echo -n "$ N"
hecho
printf "\ ndone \ n"

Ejecutar el guión.

$ bash forloop6.mierda

Se imprimen todos los números pares dentro de 2-20 después de ejecutar el script.

Ejemplo-7: para que el bucle funcione con el archivo

Este ejemplo muestra cómo puede 'for' bucle para leer una lista de archivo específico. Crea un archivo llamado, 'forloop7.mierda y agregue el siguiente script. Aquí, el bucle se usa en la lista de todos los archivos de texto del directorio actual y reemplaza la extensión del archivo desde '.txt 'a'.doc'.

forloop7.mierda

echo "reemplazar la extensión del archivo de todo el archivo de texto al archivo DOC."
para el nombre de archivo en *.TXT; hacer
MV "$ FileName" "$ FileName%.TXT.doc"
hecho
Echo "El reemplazo se realiza con éxito"

Producción:

Cree un archivo de texto primero si no existe ningún archivo de texto en el directorio actual. Aquí, un archivo de texto llamado 'Newfile.TXT 'se crea usando el comando' CAT '.

$ Cat> Newfile.TXT

Ejecute el script mencionado anteriormente.

$ bash forloop7.mierda

A continuación, verifique que la extensión se cambie o no utilizando el comando 'LS'.

Ejemplo-8: para bucle con comando de secuencia

El siguiente ejemplo muestra cómo puede usar 'sesco'in' for 'bucle para imprimir una lista de número secuencial. El comando 'SEQ' funciona de manera similar al rango con incremento. Crea un archivo llamado 'forloop8.mierda y agregue el siguiente script. El bucle imprimirá los números entre 1 y 30 omitiendo tres números cada paso.

forloop8.mierda

echo "Números de impresión omitiendo 3"
para SQ en $ (SEQ 1 3 30)
hacer
echo "Número de secuencia: $ SQ"
hecho

Producción:

Ejecutar el guión.

$ bash forloop8.mierda

La siguiente salida aparecerá después de ejecutar el script.

Ejemplo-9: usando infinito para bucle

El bucle infinito se puede usar para realizar tareas repetitivas muchas veces hasta que aparezca una condición específica. Crea un archivo llamado 'forloop9.mierda con el siguiente script para verificar el uso del bucle infinito. Aquí, no se define ninguna condición de terminación en el bucle. El bucle muestra el menú de 5 listas hasta que se presione el número 5. Imprimirá un mensaje en particular para otros números del 1 al 4 y mostrará el menú nuevamente.

forloop9.mierda

para (( ; ; ))
hacer
Echo "1. Imprimir mensaje de éxito "
Echo "2. Imprimir mensaje de información "
Echo "3. Mensaje de advertencia de impresión "
Echo "4. Mensaje de error de impresión "
Echo "5. Salida"
echo -n "Seleccione cualquier número de [1-5]:"
Respuesta de lectura
Caso "$ Respuesta" en
1) Echo "completado con éxito.";;
2) echo "entrada inválida" ;;
3) Echo "Su computadora tiene batería baja" ;;
4) Echo "se presentan el número incorrecto de argumentos" ;;
5) Salir 0 ;;
*) echo "selección incorrecta" ;;
ESAC
hecho

Ejecutar el guión.

$ bash forloop9.mierda

Aquí, 9 se presiona la primera vez que no existe en la lista. Para esta entrada, se imprime "selección incorrecta" y muestra el menú nuevamente. A continuación, se presiona 1 y muestra un mensaje, "completado con éxito". A continuación, se presiona 5 para terminar desde el programa.

Ejemplo-10: usando para bucle sin la lista.

El bucle 'for' se puede usar sin ninguna lista, matriz o salida de comandos. En este ejemplo, se muestra cómo puede usar los argumentos de la línea de comandos 'for' para leer. Crea un archivo llamado, 'forloop10.mierda y agregue el siguiente script. El bucle iterará en función del número de argumentos de la línea de comandos. $ contador de contador se usa para encontrar cada paso del bucle que se incrementa en 1 en cada paso.

Forloop10.mierda

contador = 1
por texto
hacer
Si [$ contar -eq 2]
entonces
str = "Mi color favorito es"
Elif [$ contador -eq 3]
entonces
str = "Amo"
demás
str = "me gusta"
FI
echo "$ str $ texto"
((contador = $ contador+1))
hecho

Ejecute el script con los valores de argumento de la línea de comando.

$ bash forloop10.programación azul de helado

El guión ha impreso el mensaje, "Me gusta el helado" cuando el contador $ es 1, "mi color favorito es azul" cuando el contador $ es 2 y "me encanta la programación" cuando el contador $ es 3.

Ejemplo-11: Lectura de archivos y directorios usando para bucle

El bucle 'for' se puede usar para imprimir la lista de archivos y carpetas del directorio actual. Crear un archivo llamado 'forloop11.mierda'Y agregue el siguiente script. Aquí, el símbolo '*' se usa en el bucle 'for' para leer los archivos y carpetas del directorio actual. El bucle lee cada archivo o nombre de carpeta en cada paso e imprímalo en el terminal con un espacio de 'pestaña'.

forloop11.mierda

printf "Pinting los archivos y carpetas del directorio actual ... \ n \ n"
Para la lista en *
hacer
printf "$ list \ t"
hecho
printf "\ n \ ndone \ n"

Ejecutar el guión.

$ Bash FORLOOP11.mierda

Los nombres de archivo y carpeta del directorio de trabajo actual se imprimen después de ejecutar el script.

Ejemplo-12: Uso de una coma en el estilo B de Bash para bucle

El bucle de estilo C de estilo C también es compatible con Bash y este bucle 'para' tiene tres expresiones. Estos son inicialización, condición de terminación e incremento o disminución. Pero usando la coma (,), puede definir múltiples variables de inicialización en BASH que se muestra en este ejemplo. Crear un archivo llamado, 'forloop12.mierda y agregue el siguiente script. El bucle anidado para 'para' se usa en este script. Dos variables de inicialización, $ equipo, y $ jersey se declaran en el primer bucle 'for'. El primer bucle se terminará cuando $ equipo será más de 2. No hay variable de inicialización en el bucle interno 'para' y el bucle interno se terminará donde el $ jersey es más de 3. $ jersey se establece en 1 después de completar el bucle interno de iteración. Entonces, el bucle exterior iterará por 2 veces y el bucle interno iterará por 3 veces.

forloop12.mierda

para ((equipo = 1, jersey = 1; equipo <= 2 ; team++))
hacer
para ((; jersey <= 3 ; jersey++))
hacer
Echo "Equipo No- $ Team, Jersey No- $ Jersey"
hecho
Jersey = 1
hecho

Ejecutar el guión.

$ bash forloop12.mierda

La siguiente salida aparecerá después de ejecutar el script.

Conclusión:

Muchos usos efectivos del bucle 'para' se intentan explicar en este tutorial. Después de practicar los ejemplos anteriores, espero que los lectores obtengan un conocimiento claro sobre el bucle 'para' y sean 0 para usar este bucle correctamente en el script bash.