Ich bin neu auf Bash und ich versuche, ein Bash-Skript, das Benutzer mehrsprachige Eingaben (ein Text mit Zeilenumbrüchen, einige Zeilen Code, etc.) zu speichern. Ich muss Newline erlauben (wenn Sie "Enter" drücken), mehrzeiligen einfügen (wenn Sie einige Zeilen einfügen "Strg + V") und einen neuen Schlüssel, anstatt "Enter", zu validieren, senden Sie die Eingabe und fahren Sie fort mit der nächster Schritt des Skripts.Bash: lesen/lesen Array mehrzeiliger Eingang
Ich versuchte mit read
, aber Sie können Multiline nicht tun.
echo "Enter content :"
read content
ich ein Beispiel mit readarray
hier (How to delete a character in bash read -d multiline input?), die „Enter“ drücken für Newline erlauben aber jeweils Wörter getrennt von Raum sind in der Anordnung getrennt. Ich möchte nur die Linien getrennt haben.
echo "Enter package names, one per line: hit Ctrl-D on a blank line to stop"
readarray -t pkgs
Haben Sie irgendwelche Ideen? Oder gibt es vielleicht eine ganz andere Art, es zu tun? Danke für Ihre Hilfe.
Hallo und danke für diese Antwort. Ich wusste nichts über IFS. Für andere Leute, die interessiert sind: 'echo" Geben Sie Paketnamen, einen pro Zeile: drücken Sie Strg-D auf eine leere Zeile, um zu stoppen " IFS = $ '\ n' lesen Zeilen für Zeile in $ {Zeilen [* ]} do \t echo "$ line" >> result.txt done' – Lucien
Versuchen Sie nicht, Code-Blöcke in Kommentare einzufügen; es funktioniert nicht gut. :) Siehe auch meine Bearbeitung. –