Van output naar input
Soms is het nodig om het resultaat van het ene programma over te hevelen naar een ander programma. Dat kan met BASH zeer eenvoudig en snel gedaan worden met behulp van de IFS-variabele en een loop.
IFS staat voor "Internal Field Separator" en is een variabele die binnen BASH de scheiding tussen velden bepaalt. De standaardwaarde van IFS is een spatie, wat eigenlijk betekent dat elk woord, getal en teken als een veld beschouwd wordt. Afhankelijk van de te verwerken gegevens kan IFS een specifieke waarde mee gegeven worden. In veel gevallen is deze waarde een newline, aangezien de uitvoer van een programma vaak is te scheiden aan de hand van de regelafbraak. Dit wordt geïllustreerd in het volgende voorbeeld:
Er zijn veel verschillende programma's waarvan op deze manier de uitvoer ingelezen kan worden. Zo kan bijvoorbeeld met find een zoekopdracht worden uitgevoerd, waarvan uiteindelijk de resultaten kunnen worden ingelezen. Het is natuurlijk wel belangrijk dat de juiste uitvoer wordt gegeven door find en andere programma's. Dit kan o.a. bereikt worden door de juiste argumenten meegeven of het gebruik van grep en sort.
IFS staat voor "Internal Field Separator" en is een variabele die binnen BASH de scheiding tussen velden bepaalt. De standaardwaarde van IFS is een spatie, wat eigenlijk betekent dat elk woord, getal en teken als een veld beschouwd wordt. Afhankelijk van de te verwerken gegevens kan IFS een specifieke waarde mee gegeven worden. In veel gevallen is deze waarde een newline, aangezien de uitvoer van een programma vaak is te scheiden aan de hand van de regelafbraak. Dit wordt geïllustreerd in het volgende voorbeeld:
#!/bin/bash
IFS="
"
lines=`cat example.txt`
for line in ${lines}
do
echo "- $line"
done
In het voorgaande voorbeeld wordt IFS aangepast naar een newline. Wanneer een tekstbestand via cat wordt ingelezen in een variabele, zal bij de for-loop elke regel uit dat bestand als een apart veld worden beschouwt. In dit geval zal elke regel uitgevoerd worden met een minteken ervoor. Deze benadering kan van pas komen wanneer er bijvoorbeeld een logbestand moet worden ingelezen om een ander programma aan te sturen.Er zijn veel verschillende programma's waarvan op deze manier de uitvoer ingelezen kan worden. Zo kan bijvoorbeeld met find een zoekopdracht worden uitgevoerd, waarvan uiteindelijk de resultaten kunnen worden ingelezen. Het is natuurlijk wel belangrijk dat de juiste uitvoer wordt gegeven door find en andere programma's. Dit kan o.a. bereikt worden door de juiste argumenten meegeven of het gebruik van grep en sort.