| Home Profil Fun |
#72 Linux 07.06.2009
Der internal field separator IFSAnhand einer For-Schleife kann man den IFS erklären. Wird eine solche Schleife ausgeführt erhält das Kommando eine Liste. Diese Liste wird in einzelne Element gesplittet. Entsprechend werden dann die Kommandos innerhalb der Schleife für jedes Element der Liste ausgeführt. Man kann nun steuern anhand welches Trennungszeichens diese Liste aufgespalten wird. Dies geschieht mit der Umgebungsvariablen IFS. Defaultmäßig wird bei Leerzeichen, Tabs und newline gesplittet. Hier ein Beispiel für eine Trennung anhand des Doppelpunktes. #!/bin/bash IFS=':' LINE='a:b:c' for field in $LINE do echo $field done exit 0 Dieses Beispiel trennt also beim Doppelpunkt, sodass das Ergebnis wie folgt aussieht: a b c Das zweite Beispiel trennt mit newline. #!/bin/bash IFS=' ' for field in `cat ./list.txt` do echo $field done exit 0 Nehmen wir an die Datei list.txt enthielte diese Zeilen: a b bb c Dann sieht der Output erwartungsgemäß so aus. a b bb c Wie bereits erwähnt wird die Liste defaultmäßig bei Leerzeichen UND Tabs UND newlines getrennt. Ohne das explizite Setzen des IFS auf (nur)newline wäre der Output dieser: a b bb c |