Warum löscht Bash Zeilemumbrüche von STDOUT?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
gerdi99
Beiträge: 2
Registriert: 06.06.2007 13:38:25

Warum löscht Bash Zeilemumbrüche von STDOUT?

Beitrag von gerdi99 » 28.07.2007 11:56:43

Hallo

Gegeben zwei Bash-Scripts:

write.sh

Code: Alles auswählen

#!/bin/sh
echo Zeile 1
echo Zeile 2
test.sh

Code: Alles auswählen

#!/bin/sh
OUTPUT=`./write.sh`
echo $OUTPUT
Ausgabe auf der Shell:

Code: Alles auswählen

$ ./write.sh
Zeile 1
Zeile 2
$ ./test.sh
Zeile 1 Zeile 2
Kann mir jemand sagen, warum die beiden Scripts nicht genau die gleiche Ausgabe haben? Beim schreiben in die Variable OUTPUT scheinen alle Zeilenumbrüche verloren zu gehen! Was muss ich tun, damit OUTPUT am Schluss die Ausgabe des ersten Scripts enthält, und zwar genau so wie ich sie auch auf der Shell sehen würde (also mit Zeilenumbrüchen)?

Danke! :)

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von GoKi » 28.07.2007 12:01:59

Die Zeilenumbrüche gehen beim echo verloren. Versuch mal

Code: Alles auswählen

#!/bin/sh
OUTPUT=`./write.sh`
echo "$OUTPUT"
MfG GoKi
:wq

Antworten