BASH'en
Soms wil je van die dingen met je computer doen die te specifiek zijn voor een generiek programma. Gelukkig biedt Ubuntu (oftewel Linux) de mogelijkheid om via de CLI eenvoudig uitgebreide handeling te doen. De meest doorgewinterde Linux-gebruikers zijn wel bekend met ls, find, grep, enzovoorts. Deze commando's bieden de mogelijkheid om snel te bereiken wat je wilt. Wanneer een handeling echter complex wordt, zal er al gauw gescript moeten worden.
Als blijkt dat het noodzakelijk is om een script te schrijven, zal een PHP'er (zoals ik) geneigd zijn om gebruik te maken van een CLI-versie van PHP. (Voor een aantal mensen bekend als het commando php5-cli). Nu is dat in een aantal gevallen een goede oplossing. Toch zal PHP niet handig en snel genoeg blijken te zijn naarmate de interactie tussen systeem en script groter wordt. Vanaf dan zal er een efficiëntere en meer inherente scripttaal gebruikt moeten worden.
Er bestaan verschillende scripttalen die geschikt zouden zijn voor handelingen waarbij veel interactie is met het systeem. Er is echter maar één taal die met kop en schouders boven de rest uitsteekt, waar het gaat om eenvoud, efficiëntie en inherentie. Deze taal is BASH, ook wel bekend als "Bourne again shell". BASH vormt een flinterdunne laag bovenop de CLI, waarmee uitgebreide handelingen kunnen worden gedaan. Het is feitelijk een scripttaal welke innig is verbonden met het besturingssysteem, dit wordt doorgaans een shell genoemd.
BASH is ten opzichte van een aantal scripttalen die ik ken een erg strikte taal. Een spatie teveel op de verkeerde plek kan ervoor zorgen dat je hele script buiten werking wordt gesteld. Dit maakt dat de leercurve bij deze taal vrij steil is. Je kunt je namelijk weinig fouten permitteren. Toch zal de moeite die wordt gestoken in het leren van BASH zich driedubbel terugbetalen. Striktheid bepaald namelijk de moeilijkheidsgraad van een taal, maar zorgt er ook voor dat hij veel beter verwerkt kan worden. En juist dat is waarom BASH de ultieme oplossing biedt waar het neerkomt op snelheid en inherentie met het systeem.
Ik maak al ongeveer 2 jaar sporadisch scripts in BASH. Vooral als ik iets nodig heb wat ik niet kant-en-klaar kan vinden of waar ik geen lijvig programma voor wil installeren. Zo heb ik bijvoorbeeld een conversiescript geschreven dat een specifiek CSV-bestand omzet in een OFX-bestand. Ook heb ik een script geschreven dat bestandsnamen controleert aan de hand van data die zich in het betreffende bestand bevindt. Deze twee voorbeelden illustreren enigszins het nut en de kracht van BASH, aangezien ze bij elkaar nog geen 5 KB groot zijn en precies doen wat ze moeten doen.
Omdat ik BASH een leuke (en vooral uitdagende) taal vind, ben ik voornemens om met enige regelmaat stukjes code met tekst en uitleg op mijn weblog te plaatsen. Daarmee vorm ik voor mezelf een geheugensteuntje en help ik anderen op weg. Veel plezier met BASH'en!