Platziere eine mehrzeilige Ausgabe in einer Variablen

8

Ich schreibe ein Skript in bash und ich möchte, dass es einen Befehl ausführt und jede Zeile einzeln behandelt. zum Beispiel:

%Vor%

Es gibt alle Ausgaben zurück, die neue Zeilen mit Leerzeichen konvertieren.

Beispiel:

wenn die Ausgabe sein sollte:

%Vor%

Dann würde ich

bekommen %Vor%

Wie kann ich die Ausgabe eines Befehls in eine Variable setzen, so dass neue Zeilen immer noch neue Zeilen sind, wenn ich also die Variable drucke, bekomme ich eine korrekte Ausgabe?

    
ufk 03.01.2012, 13:41
quelle

2 Antworten

11

Im Allgemeinen bittet $v in den meisten Fällen um Probleme. Fast immer meinst du "$v" in Anführungszeichen.

%Vor%     
kubanczyk 03.01.2012, 13:43
quelle
6

Nein, wird es nicht. Das $(something) entfernt nur nachfolgende Zeilenumbrüche.

Die Erweiterung in argument to echo splittet whitespace und than echo verkettet separate Argumente mit Leerzeichen. Um den Leerraum zu erhalten, müssen Sie erneut angeben:

%Vor%

Beachten Sie, dass die Zuweisung nicht zitiert werden muss; Ergebnis der Erweiterung ist nicht Wort-Split in Zuordnung zu Variable und in Argument zu case . Aber es kann zitiert werden und es ist einfacher zu lernen, einfach nur die Anführungszeichen einzugeben.

    
Jan Hudec 03.01.2012 13:47
quelle

Tags und Links