Bash Trucjes: Until en ${RANDOM}

Veel beheerders brengen (terecht) een groot deel van hun dag door op de command prompt. Nu wordt natuurlijk alles wat geautomatiseerd kan worden ook geautomatiseerd, maar wat handwerk zal er altijd zijn. Nu kan het zijn dat sommig van dat handwerk een kans van falen heeft, bijvoorbeeld omdat een remote systeem (tijdelijk) niet bereikbaar is, omdat een mirror nog niet gesynchroniseerd is, of gewoon omdat de stand van de maan je systeem niet aanstaat.

In plaats van een commando dan met de hand meerdere keren te proberen kun je ook je shell dit voor je laten doen. Één van de manieren waarop dat kan is met een until block.

Bash Process Substitution

De meeste mensen die met Bash werken zijn wel bekend met het fenomeen “Command Substitiuion”; Je zet in een commandline een commoando tussen $( en ), of tussen backticks `, en dat stuke van je commandline wordt vervangen door de output van dat commando.

Nu zijn er helaas situaties waar je die output in een (tijdelijk) bestand nodig hebt voor een ander commando, en je niet moeilijk wilt doen met het herschikken van file-descriptors of het zelf aanmaken van tijdelijke bestanden. In die gevallen kun je gebruik maken van “Process Substitution”, waarbij Bash zelf voor de tijdelijke bestanden zorgt in de vorm van named pipes.

Modulaire .bashrc

Sinds RHEL9 heeft de standaard .bashrc voor nieuwe gebruikers een trucje geleerd: Het laden van bestanden uit de ~/.bashrc.d directory.

Hiermee is het mogelijk om geen custom monolithisch .bashrc bestand meer bij te houden, met alle nare neveneffecten van dien wanneer je gaat automatiseren, maar om over te stappen op een modulair systeem, waarbij je gewoonweg de goede bestanden voor de gewenste functionaliteit kopieert naar de juiste systemen.