Segurament t'has topat amb algunes tasques que hagis de fer de forma repetitiva. Per exemple, imagina que tens un directori ple d'arxius i vols canviar el nom de tots ells, o que necessites comprimir diversos fitxers o descomprimir, potser necessitis convertir d'un format a un altre, còpies de seguretat periòdiques, etc. Per tot això tenen solucions els scripts.
Aquestes tasques quan s'apliquen a un sol arxiu en Bash estan bé. El problema és quan has de aplicar-lo a desenes d'ells. La tasca pot ser molt molesta. Amb un simple loop o bucle en Bash et podries treure aquest problema i que s'executi una tasca de forma reiterativa per automatitzar i que no et costi tant treball. La forma de fer-ho és super simple, però molts usuaris nous no ho fan i acaben fent la tasca manualment o buscant programes gràfics que ho facin ...
Per això, queda't amb aquesta estructura:
for x in objetivo; do comando; done
Per EXEMPLE, Imagina que vols eliminar fitxers anomenats nombre0, nom1, nom2, nombre3, etc., fins al nombre nombre100. Anar un a un amb rm seria bastant tediós, en canvi, pots executar la següent ordre:
for n in 'seq 100'; do rm nombre$n; done
O potser veu imagina que tens un directori amb diversos fitxers .zip comprimits que vols extreure. Per no haver de anar un a un pots fer servir:
</pre> <pre>for n in *.zip; do unzip "$n"; done
Pots alterar aquests loops de Bash com prefereixis per utilitzar l'eina que necessites en el teu cas. Per exemple, un altre més, ara imagina que vols desempaquetar un tarball:
</pre> <pre>for n in *.tar.xz; do tar -xf "$n"; done</pre> <pre>
Espero haver-te ajudat a no perdre tant de temps fent totes aquestes tasques d'una en una i que puguis aplicar això per agilitar el teu treball quotidià. Com veus, no té misteri, és super senzill ...