Umschließen von langen Bash-Befehlen in Skriptdateien

17566
Jen S.

Wie binden Sie einen langen Befehl in die nächste Zeile innerhalb einer Bash-Skriptdatei ein?

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

Von der Konsole aus kann ich Folgendes tun:

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

Und das schließt die Linie ein. Derselbe Code in einer Skriptdatei führt jedoch zu einem Fehler.

Wie wickeln Sie diese Zeilen so ein, dass sie schön formatiert werden?

13

1 Antwort auf die Frage

12
Ignacio Vazquez-Abrams

Funktioniert hier gut. Stellen Sie sicher, dass der umgekehrte Schrägstrich das letzte Zeichen in der Zeile ist und dass die Datei * nix Zeilenenden verwendet.

Funktioniert auch hier gut, aber das Entfernen der \ 's und &&' s insgesamt und das Überlassen der Befehle in separaten Zeilen ... Brian Kintz vor 13 Jahren 0
@elmugrat: Aber dann verlierst du die bedingte Verkettung. Ignacio Vazquez-Abrams vor 13 Jahren 2
Ahhh stimmt ... das irgendwie vergessen. Brian Kintz vor 13 Jahren 0
Dieses Problem bestand in den Zeilenenden, was darauf zurückzuführen ist, dass ich cygwin unter Windows und kein anderes Betriebssystem verwende. Vielen Dank. Jen S. vor 13 Jahren 1