Je bent zeker tegengekomen sommige taken die u herhaaldelijk moet uitvoeren Stel u bijvoorbeeld voor dat u een map vol met bestanden heeft en u de naam van alle bestanden wilt wijzigen, of dat u verschillende bestanden moet comprimeren of decomprimeren, misschien moet u van het ene formaat naar het andere converteren, periodieke back-ups, enz. Scripts hebben hier oplossingen voor.
Deze taken zijn prima wanneer ze worden toegepast op een enkel bestand in Bash. Het probleem is wanneer u het op tientallen moet toepassen. Huiswerk kan erg vervelend zijn Met een simpele lus of lus in Bash zou je van dat probleem af kunnen komen en een taak herhaaldelijk kunnen laten uitvoeren om het te automatiseren, zonder dat het je zoveel werk kost. De manier om het te doen is supereenvoudig, maar veel nieuwe gebruikers doen het niet en doen de taak uiteindelijk handmatig of zoeken naar grafische programma's die het doen ...
Hiervoor blijf bij deze structuur:
for x in objetivo; do comando; done
door voorbeeld bekijkenStel dat u bestanden met de naam naam0, naam1, naam2, naam3, enz. Wilt verwijderen, tot het nummer naam100. Een voor een gaan met rm zou nogal vervelend zijn, in plaats daarvan kun je het volgende commando uitvoeren:
for n in 'seq 100'; do rm nombre$n; done
Of stel je voor dat je een map hebt met verschillende gecomprimeerde .zip-bestanden die je wilt uitpakken. Om te voorkomen dat u een voor een moet gaan, kunt u het volgende gebruiken:
</pre> <pre>for n in *.zip; do unzip "$n"; done
U verander deze bash-loops aangezien u liever de tool gebruikt die u in uw geval nodig heeft. Bijvoorbeeld, nog een ander, stel je nu voor dat je een tarball wilt uitpakken:
</pre> <pre>for n in *.tar.xz; do tar -xf "$n"; done</pre> <pre>
Ik hoop dat het helpt om niet zoveel tijd te verspillen door al die taken een voor een te doen en dat u dit kunt toepassen om uw dagelijkse werk te stroomlijnen. Zoals je kunt zien, heeft het geen mysterie, het is supereenvoudig ...