Feldtrennung in der Korn- bzw. POSIX-Shell

Nach der Durchführung der Befehlssubstitution sucht die Korn-Shell in den Substitutionsergebnissen nach den in der Variablen IFS (Internal Field Separator) gefundenen Feldtrennzeichen. Werden Feldtrennzeichen gefunden, teilt die Shell die Substitutionen in separate Argumente.

Explizite Nullargumente ("" oder '') werden beibehalten, und implizite Nullargumente (die sich aus Parametern ohne Werte ergeben) werden verworfen.
  • Wenn der Wert von IFS ein Leerzeichen, Tabulatorzeichen oder Zeilenvorschubzeichen oder nicht definiert ist, werden alle Folgen von Leerzeichen, Tabulatorzeichen und Zeilenvorschubzeichen am Anfang oder Ende der Eingabe ignoriert. Innerhalb der Eingabe begrenzt eine beliebige Folge dieser Zeichen ein Feld. Die folgende Eingabe trennt beispielsweise die Felder school und days:
    <Zeilenumbruch><Leerzeichen><Tabulatorzeichen>school<Tabulatorzeichen><Tabulatorzeichen>days<Leerzeichen>
  • Wenn der Wert von IFS ungleich null ist, gelten die folgenden Regeln in der angegebenen Reihenfolge. Die Angabe IFS Leerzeichen bezieht sich auf alle Folgen (null oder mehr Exemplare) von Leerzeichen im Wert der Variablen IFS. Beispiel: Enthält die Variable IFS Leerzeichen/Komma/Tabulatorzeichen, wird jede Folge von Leerzeichen und Tabulatorzeichen als IFS-Leerzeichen betrachtet.
    1. IFS-Leerzeichen am Anfang und Ende der Eingabe werden ignoriert.
    2. Jedes IFS-Zeichen in der Eingabe, bei dem es sich nicht um ein IFS-Leerzeichen handelt, dient zusammen mit einem darauffolgenden IFS-Leerzeichen als Begrenzer für ein Feld.
    3. Durch IFS-Leerzeichen mit einer Länge ungleich null wird ein Feld begrenzt.