Umbrechen langer Bash-Befehle in Skriptdateien


15

Wie bricht man einen langen Befehl in die nächste Zeile einer Bash-Skriptdatei ein?

Als einfaches Beispiel möchte ich den Befehl ausführen pushd . && cd /foo/bar && ls && popd

Über die Konsole kann ich Folgendes tun:

pushd . \
&& cd /foo/bar \
&& ls \
&& popd

Und das umschließt die Linie. Derselbe Code in einer Skriptdatei erzeugt jedoch einen Fehler.

Wie umbrechen Sie diese Zeilen, um sie schön zu formatieren?

Antworten:


16

Funktioniert gut hier. Stellen Sie sicher, dass der Backslash das allerletzte Zeichen in der Zeile ist und dass die Datei * nix-Zeilenenden verwendet.


Funktioniert auch hier einwandfrei, aber auch das Entfernen der \ 's und &&' s insgesamt und das Verlassen der Befehle in separaten Zeilen ...
— Brian Kintz

2
@elmugrat: Aber dann verlierst du die bedingte Verkettung.
— Ignacio Vazquez-Abrams

Ahhh stimmt ... irgendwie vergessen.
— Brian Kintz

2
Dieses Problem betraf die Zeilenenden, was auf die Tatsache zurückzuführen ist, dass ich cygwin unter Windows verwende und nicht auf ein anderes Betriebssystem. Vielen Dank.
— Jen S.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.