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.