10 exemples de bucles Bash genials i impressionants

10 Exemples De Bucles Bash Genials I Impressionants



En el llenguatge de programació, hi ha principalment tres tipus de bucles (for, while i until). Els tres tipus de bucles són importants de diferents maneres. No hi ha molta diferència entre els bucles while i until, però el bucle for funciona de manera molt diferent d'aquests dos. És per això que podeu utilitzar aquests bucles per crear scripts interactius com a usuari de bash.

Així, aprendre exemples de bash us pot ajudar a millorar les vostres habilitats per crear scripts. Així, en aquest tutorial, inclourem 10 exemples de bucles de bash genials i increïbles que podeu provar per millorar les vostres habilitats de scripting.







10 exemples de bucles Bash genials i impressionants

En aquesta secció, explicarem diversos exemples i els enfocaments que hem utilitzat en els bucles.



Ordre Seq amb bucle a Bash

Podeu utilitzar l'ordre seq al bucle for per crear la seqüència de números. Per exemple, teniu un script bash 'File.sh' que conté el codi següent:



#!/bin/bash
per A en $ ( seq 5 2 25 )
fer
eco 'nombres de $A són'
fet





Obtindreu el següent resultat després d'executar l'script al terminal:

. / File.sh




Canviar el nom dels fitxers mitjançant Loop

Amb un script bash, podeu utilitzar els bucles for per canviar el nom de diversos fitxers. Per exemple, teniu diversos fitxers .txt i voleu afegir la data actual amb el nom. Així que aquí teniu l'exemple d'script que podeu utilitzar:

#!/bin/bash
per A en $ ( ls * .txt ) ; fer
mv $A ( nom base $A .txt ) _$ ( data % d % m % ) .txt
fet


Ara, podeu executar l'script i canviarà el nom de tots els fitxers .txt afegint la data actual:

. / MyFile.sh



De la mateixa manera, podeu canviar les extensions d'un fitxer mitjançant un únic script. Per tant, canviem l'extensió .txt a .sh mitjançant l'script següent:

#!/bin/bash
per dossier en * .txt; fer
mv -- ' $fitxer ' '{fitxer%.txt}.sh'
fet

Després d'executar l'script al terminal, obtindreu els fitxers .sh en lloc de .txt:

. / MyFile.sh


Infinit For Loop a Bash

Quan no es defineix cap condició de terminació al bucle, s'anomena bucle infinit. En aquest exemple de bucle Bash, veurem el bucle for infinit a bash. El següent bucle for infinit està definit per un punt i coma doble ( ; ; ) i no conté cap part inicial, d'acció o de terminació.

L'script següent continuarà fins que premeu Ctrl+C o escriviu 'sortir' com a entrada. Aquest script imprimirà tots els números del 10 al 50 que es donen com a entrada. En cas contrari, imprimirà 'el número està fora de l'interval'.

#!/bin/bash
#bucle infinit
per ( ( ; ; ) )
fer
eco 'Introduïu un número entre 10 i 50'
llegir n
si [ $n == 'renunciar' ]
aleshores
eco 'acabat'
sortida 0
ser
si ( ( $n < 10 || $n > 50 ) )
aleshores
eco 'El número està fora de l'abast'
altra cosa
eco 'El número és $n '
ser
fet

Hem donat 45 i 23 entrades vàlides a l'script anterior. Després d'això, imprimim 2 com a entrada que indica a la sortida que 'el nombre està fora de l'interval'. Després d'això, per tancar l'script, escrivim sortir com a entrada. Aquí també podeu prémer Ctrl+C per sortir del bucle infinit.

Bucle de tres expressions a Bash

Se sap pel nom del bucle de tres expressions que comprèn tres expressions, també anomenades expressions de control. La primera expressió (EXP1) és l'inicialitzador, la segona expressió (EXP2) és la prova o condició de bucle i la tercera expressió (EXP3) és l'expressió/pas de recompte. Executem un bucle de tres expressions a bash:

#!/bin/bash
per ( ( n = 5 ; n > = 1 ; n-- ) )
fer
eco 'Llibre $n '
fet

En executar l'script anterior, obtindreu la següent sortida.

Bucle amb múltiples condicions

Hem utilitzat el bucle fins amb diverses condicions a l'exemple de bucle bash següent. En aquest script, vam agafar 'm' i 'n', dues variables els valors de les quals són 20 i 10, respectivament, i vam mantenir el límit de 15. Aquí posem les condicions 'm' i 'n' juntes al bucle, en el qual el bucle s'executarà fins que el valor de 'm' sigui menor que el límit i 'n' sigui més que el límit.

#!/bin/bash
límit = 15
m = 20
n = 10
fins que [ [ $m -lt límit de $ || $n -gt límit de $ ] ] ;
fer
eco 'Si M = $m aleshores N = $n '
( ( m-- ) )
( ( n++ ) )
fet

Podeu veure que l'execució de l'script anterior s'executarà fins que els valors de 'm' i 'n' arribin al mateix nivell.

Llegiu el fitxer a Bash

A bash, podeu llegir el contingut d'un fitxer de diverses maneres. En aquest exemple de bucle bash, llegirem el contingut del fitxer a través del nom del fitxer. Podem utilitzar el següent script per llegir el fitxer a bash:

#!/bin/bash
eco 'El contingut del fitxer introduït és:'
mentre
llegir línia
fer
eco $línia
fet < ~Documents / Linuxhint.txt

Després d'executar l'script anterior, podeu llegir el contingut complet del fitxer introduït.

Escrivint a un fitxer

Podeu utilitzar els bucles de l'script per editar un fitxer directament des del terminal. Per exemple, si tenim un fitxer txt 'Example.txt' i volem afegir informació, podem utilitzar l'script següent:


Si executeu l'script anterior, us demanarà que introduïu els detalls:


Un cop introduïu els detalls, premeu CTRL + D per desar el fitxer i CTRL + Z per finalitzar el procés correctament.

Trenca i continua el bucle de declaració a Bash

A bash, podeu continuar la declaració de bucle després de la pausa. La instrucció break surt del bucle i després passa el control a la següent instrucció donada. La iteració número dos comença després de saltar la iteració actual amb la mateixa instrucció continue.

#!/bin/bash
en una = 16
fins que fals
fer
( ( en un-- ) )
si [ [ $núm -eq 13 ] ]
aleshores
continuar
elif [ [ $núm - el 4 ] ]
aleshores
trencar
ser
eco 'LinuxHint= $núm '
fet

Al següent script bash, podeu veure que quan el 'num' és igual a 13, salta la resta del cos del bucle i passa a la següent iteració. De la mateixa manera, el bucle es trencarà quan 'num' sigui menor o igual que 4.


L'script anterior mostra que el bucle comença a les 15, es trenca a les 13 i continua fins a les 5.

Càlcul d'una mitjana en Bash

Podeu calcular la mitjana executant l'script en un bucle bash. En això, l'usuari pot calcular la mitjana de nombres dins d'un rang definit. El següent script calcula la mitjana de l'entrada proporcionada per l'usuari.

#!/bin/bash
marques = '0'
MITJANA = '0'
SUMA = '500'
EN UNA = '5'
mentre veritat ; fer
eco -n 'Introduïu les vostres marques o premeu 'q' per avortar' ; llegir marques;
si ( ( ' $marques ' < '0' ) ) || ( ( ' $marques ' > '100' ) ) ; aleshores
eco 'Si us plau, introduïu les vostres marques'
elif [ ' $marques ' == 'q' ] ; aleshores
eco 'Les notes mitjanes són: MITJANA $ %'
trencar
altra cosa
SUMA =$ [ SUMA $ + $marques ]
EN UNA =$ [ $NUM + 1 ]
MITJANA =$ [ SUMA $ / $NUM ]
ser
fet

Si l'entrada no està dins de l'interval, s'imprimeix un missatge que diu 'Si us plau, introduïu les vostres marques'. Quan l'usuari prem 'q' després d'introduir totes les marques, l'script calcula la mitjana aproximada de tots els números introduïts.

Quan s'executa l'script anterior, la vostra sortida serà una cosa així.

Llegiu els arguments de la línia d'ordres a Bash

A bash, podeu llegir arguments de línia d'ordres únics mitjançant bucles. L'script imprimeix els valors dels arguments amb format. Executem arguments de línia d'ordres a bash utilitzant un bucle while a l'script següent. Mitjançant això, imprimireu el valor passant l'opció vàlida del valor de l'argument amb l'ajuda d'una sola ordre.

#!/bin/bash
mentre getopts N:F:M: OPT
fer
Caixa ' ${OPT} '
en
N ) nom = ${OPTARG} ;;
F ) nom del pare = ${OPTARG} ;;
M ) nom de la mare = ${OPTARG} ;;
* ) eco 'Invàlid'
sortida 1 ;;
esac
fet
imprimirf 'Nom: $nom \n Nom del pare: $nom del pare \n Nom de la mare: $nom de la mare \n '

Així, podeu imprimir els valors dels arguments amb format a la sortida executant l'script anterior en un bash.

Embolcallant

Així doncs, aquesta va ser la informació breu sobre els 10 exemples de bucles de bash genials i impressionants que podeu aprendre. Hem utilitzat diferents tipus de bucles per crear fàcilment l'script interactiu. A més, també vam explicar els enfocaments bàsics utilitzats en els exemples anteriors. Si teniu detalls detallats sobre els bucles a bash, visiteu el nostre lloc web oficial per saber-ne més.