Re: Bash-Problem

From: Christoph Sandhaus <mailings_at_draupadi.de>
Date: Tue, 28 Nov 2006 21:28:41 +0100

Am Dienstag, 28. November 2006 21:23 schrieb Thomas Strathmann:
> > Es wird also nach jedem Leerzeichen eine neue Zeile angefangen. Nur
> > warum ist das so? Ein 'cat <datei>' wirft mir ja schließlich auch die
> > Datei so auf den Schirm wie gewünscht. Ich dachte immer cat ist für die
> > zeilenweise Auslieferung zuständig.
>
> Es gibt da eine Variable namens IFS, die angibt, welche Zeichen Felder
> trennen. Standardmäßig steht auch ein Leerzeichen mit drin. Durch
> IFS=$'\n' erreichst du, dass nur bei Newline getrennt wird.

Machbar, aber mit Vorsicht zu genießen:
OLD_IFS="$IFS"
IFS='\n'

# do something block

IFS="$OLD_IFS

Oft fängt man sich damit ein, daß im "do something block" urplötzlich andere
Operatoren/Funktionen bei der Bitschubserei urkomisch drauf sind, da ja der
IFS geändert wurde. Darf man in dem Block dann nicht vergessen ...
Ist es nur nen normales "echo", überschaut man das, bei größeren Blocken oder
Funktionsaufrufen wirds krümellig...

Gruß,
Christoph
Received on Tue Nov 28 2006 - 21:28:41 CET

This archive was generated by hypermail 2.2.0 : Tue Nov 28 2006 - 21:28:57 CET