Piszę skrypt powłoki, który przechowuje dane wyjściowe polecenia w zmiennej, przetwarza dane wyjściowe, a następnie wyświetla wyniki. Oto co mam:Treść skryptu powłoki zawierająca dane wyjściowe polecenia usuwa znaki nowego wiersza.
stuff=$(diff -u pens tape)
# process the output
echo $stuff
Problem polega na tym, wyjście otrzymuję od wykonywania skryptu jest następująca:
--- 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
Zważywszy Spodziewałem się następująco:
--- 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
IT wygląda na to, że znaki nowego wiersza są jakoś usunięte. Jak mam je przekazać?
Jonathan ma rację. Powodem jest to, że powłoka w przeciwnym razie usunie dla Ciebie białe spacje. –