Bash-scripting: loops om alledaagse taken te automatiseren

bash-scripting

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 ...


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.