Ich schreibe ein Shell-Skript, das die Ausgabe eines Befehls in einer Variablen speichert, die Ausgabe verarbeitet und später die Ergebnisse ausgibt. Hier ist, was ich habe:Shell-Skript druckt Inhalt der Variablen, die die Ausgabe eines Befehls enthält, löscht Zeilenumbrüche
stuff=$(diff -u pens tape)
# process the output
echo $stuff
Das Problem ist, das Ausgangssignal I von der Ausführung des Skripts zu bekommen, ist dies:
--- pens 2009-09-27 10:29:06.000000000 -0400 +++ tape 2009-09-18 16:45:08.000000000 -0400 @@ -1,4 +1,2 @@ -highlighter -marker -pencil -POSIX +masking +duct
Während ich dies erwartet hatte:
--- pens 2009-09-27 10:29:06.000000000 -0400
+++ tape 2009-09-18 16:45:08.000000000 -0400
@@ -1,4 +1,2 @@
-highlighter
-marker
-pencil
-POSIX
+masking
+duct
Es sieht so aus, als ob die Zeilenumbruchzeichen irgendwie entfernt werden. Wie bekomme ich sie dazu, zu sagen?
Jonathan hat Recht. Der Grund dafür ist, dass die Shell ansonsten den Leerraum für Sie entfernt. –