Hinzufügen von Newline-Zeichen zu Unix-Shell-Variablen
Ich bin neu in shell-scripting. Ich habe eine variable in ein shell-Skript, in das ich möchte zum formatieren der Daten. Die variable speichert die neuen Daten, die während jeder iteration einer Schleife. Jedes mal, wenn die neuen Daten gespeichert werden, ich möchte eine neue Zeile einfügen, Zeichen. Hier ist, wie ich versuche, die Daten zu speichern in die variable.
VARIABLE="$VARIABLE '\n' SomeData"
Leider enthält die Ausgabe die wörtliche '\n'
Jede Hilfe wäre dankbar. Vielen Dank im Voraus.
InformationsquelleAutor der Frage James P. | 2012-02-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen
$'\n'
:gibt mir
InformationsquelleAutor der Antwort vmpstr
Ist eine verbreitete Technik ist:
InformationsquelleAutor der Antwort William Pursell
Ausgabe:
InformationsquelleAutor der Antwort Alex
Andere als
$'\n'
können Sieprintf
auch so:AUSGABE:
InformationsquelleAutor der Antwort anubhava
Hatte ich ein problem mit all den anderen Lösungen: wenn Sie einen
#
gefolgt vonSPACE
(ganz allgemein, wenn das schreiben in Markdown) beide bekommen würde, aufgeteilt auf eine neue Zeile.Also ein weiterer Weg, es zu tun würde bedeuten, wenn Sie einfache Anführungszeichen verwenden, so dass das "\n" get gerendert werden.
Ausgabe:
InformationsquelleAutor der Antwort pattulus
Also die syntax, die Sie verwenden, macht etwas anderes, das Sie erreichen wollen.
Dies ist, was Sie brauchen:
oder
InformationsquelleAutor der Antwort
Es ist viel einfacher als Sie denken:
InformationsquelleAutor der Antwort chepner
Aufbauend auf die ersten beiden Lösungen, die ich tun würde, wie unten gezeigt. Die Verkettung von strings mit dem '+ = ' - operator, sieht irgendwie übersichtlicher für mich.
Auch erinnern, die Verwendung von printf () im Gegensatz zu echo, Sie ersparen sich so viel Mühe
Ausgänge:
InformationsquelleAutor der Antwort Almendrico