Com executar un comandament diverses vegades a Linux


Per una raó o una altra, és possible que vulgueu executar una ordre repetidament diverses vegades a Linux. Aquesta guia tractarà algunes de les maneres comunes i efectives d'aconseguir-ho. Considerem el primer mètode.

Tingueu en compte que si teniu intenció d'executar una ordre després de l'ordre cada x segons, podeu consultar: Com executar o repetir una ordre de Linux cada X segons

Executeu un comandament diverses vegades a Linux mitjançant un Bash for Loop

La manera més senzilla de repetir una ordre a l'intèrpret d'ordres Bash és executar-la en bucle. Podeu utilitzar la sintaxi següent, on un comptador és una variable (podeu donar-li un nom de les vostres opcions, com ara i o x, etc.) i n és un nombre positiu per representar el nombre de vegades que voleu que s'executi l'ordre:

for counter in {1..n}; do yourCommand_here; done

Aquí teniu un exemple:

$ for x in {1..10}; do echo "linux-console.net - The #1 Linux blog $x"; done

Executeu un comandament diverses vegades a Linux amb un bucle while

Relacionat amb el mètode anterior, també es pot utilitzar un bucle while per executar una ordre moltes vegades a Linux utilitzant la sintaxi següent:

$ i=1; while [ $i -le n ]; do yourCommand_here; i=$(($i++)); done
OR
$ i=1; while [ $i -le n ]; do yourCommand_here; ((i++)); done

En el format anterior, i representa la variable del comptador, [$i -le n] és la condició de prova i n és el nombre de vegades que voleu executar l'ordre (idealment el nombre de vegades que l'intèrpret de comandaments iterarà a través del bucle.

Una altra part important del bucle while és i=$ (($i+1)) o (($i++)) que augmenta el comptador fins que la condició de prova esdevé falsa.

Així que podeu executar la vostra comanda moltes vegades com aquesta (substituïu 10 pel nombre de vegades que voleu repetir l'ordre):

$ i=1; while [ $i -le 10 ]; do echo "linux-console.net - The #1 Linux blog $i";((i++)); done

Executeu una ordre diverses vegades amb l'ordre seq

La tercera manera d'executar una ordre diverses vegades a Linux és utilitzar l'ordre seq que imprimeix una seqüència de números de manera incremental juntament amb l'ordre xargs d'aquesta forma:

$ seq 5 | xargs -I -- echo "linux-console.net - The #1 Linux blog"

Per afegir el recompte al final de cada comanda, utilitzeu aquesta sintaxi:

$ seq 5 | xargs -n 1 echo "linux-console.net - The #1 Linux blog"

A més, consulteu aquests articles relacionats:

  • 4 eines útils per executar ordres en diversos servidors Linux
  • 4 maneres de veure o supervisar fitxers de registre en temps real
  • MultiTail: supervisa diversos fitxers simultàniament en un únic terminal Linux

Això és tot per ara. Si coneixeu altres mètodes per executar una ordre diverses vegades a Linux, feu-nos-ho saber a la secció de comentaris a continuació.