Antworten:
Ich bin wirklich überrascht, dass diese Antwort hier nicht angeboten wird. Ich war auf der Suche nach einer Lösung für diese Frage und denke, dies ist der einfachste Ansatz und flexibler / verzeihender ...
Wenn Sie mehrere Zeilen von einer Website / einem Texteditor / usw. in Bash einfügen möchten, unabhängig davon, ob es sich um Befehle pro Zeile oder eine Funktion oder ein gesamtes Skript handelt, beginnen Sie einfach mit a (
und enden Sie mit a )
und Enter, wie z im folgenden Beispiel:
Wenn ich den folgenden Blob hätte
function hello {
echo Hello!
}
hello
Sie können ein Terminal mit bash einfügen und überprüfen, indem Sie:
Beginnen mit (
Fügen Sie Ihren Text ein und drücken Sie die Eingabetaste (um ihn hübsch zu machen) ... oder nicht
Beenden Sie mit a )
und drücken Sie die Eingabetaste
Beispiel:
imac:~ home$ ( function hello {
> echo Hello!
> }
> hello
> )
Hello!
imac:~ home$
Der eingefügte Text wird automatisch mit einem Voranstellen >
für jede Zeile fortgesetzt . Ich habe mit mehreren Zeilen mit Befehlen pro Zeile, Funktionen und ganzen Skripten getestet. Hoffe das hilft anderen etwas Zeit zu sparen!
Wenn Sie den C-x C-e
Befehl drücken , wird der definierte Standardeditor geöffnet.bashrc
, können Sie danach alle leistungsstarken Funktionen Ihres Editors verwenden. Wenn Sie speichern und beenden, warten die Zeilen auf Ihre Eingabe.
Wenn Sie Ihren Editor definieren möchten, schreiben Sie einfach für Bsp. EDITOR=emacs -nw
oder EDITOR=vi
innerhalb von~/.bashrc
emacs
und vi
wie) ausgeführt werden muss und beim Speichern und Beenden der Befehle sofort ausgeführt wird .
Wenn eine Zeile mit |
oder &&
oder endet ||
, wird sie zusätzlich zum Backslash in der nächsten Zeile fortgesetzt.
Fügen Sie Klammern um die Linien hinzu. Beispiel:
$ (
sudo apt-get update
dokku apps
dokku ps:stop APP # repeat to shut down each running app
sudo apt-get install -qq -y dokku herokuish sshcommand plugn
dokku ps:rebuildall # rebuilds all applications
)
(
, dass Zahnspangen wie bei Klammern {
im obigen Beispiel
Andere Möglichkeit:
bash << EOF
echo "Hello"
echo "World"
EOF
iTerm verarbeitet mehrzeilige Befehle perfekt. Es speichert mehrzeilige Befehle als einen Befehl. Anschließend können wir mit Cmd
+ Shift
+ ;
im Verlauf navigieren.
Weitere iTerm-Tipps finden Sie unter Effektiv mit iTerm arbeiten
Versuchen
out=$(cat)
Fügen Sie dann Ihre Zeilen ein und drücken Sie Strg-D (EOF-Zeichen einfügen). Alle Eingaben bis Strg-D werden an die Standardausgabe der Katze weitergeleitet.
$ out=$(cat) && eval "$out"
. Drücken Sie nach der letzten Zeile die Eingabetaste und dann STRG + D wie oben vorgeschlagen.