Ihre magische Vereinigungssache ist ein Semikolon ... und geschweifte Klammern:
{ cat wordlist.txt ; ls ~/folder/* ; } | wc -l
Die geschweiften Klammern gruppieren nur die Befehle, sodass sich das Pipe-Zeichen |
auf die kombinierte Ausgabe auswirkt.
Sie können auch Klammern ()
um eine Befehlsgruppe verwenden, um die Befehle in einer Subshell auszuführen. Dies hat eine subtile Reihe von Unterschieden mit geschweiften Klammern, z. B. probieren Sie Folgendes aus:
cd $HOME/Desktop ; (cd $HOME ; pwd) ; pwd
cd $HOME/Desktop ; { cd $HOME ; pwd ; } ; pwd
Sie werden feststellen, dass alle Umgebungsvariablen, einschließlich des aktuellen Arbeitsverzeichnisses, nach dem Verlassen der Gruppe in Klammern zurückgesetzt werden, jedoch nicht nach dem Verlassen der Gruppe in geschweiften Klammern.
Was das Semikolon betrifft, enthalten Alternativen die Zeichen &&
und ||
, die den zweiten Befehl nur dann bedingt ausführen, wenn der erste erfolgreich ist oder wenn dies nicht der Fall ist, z
cd $HOME/project && make
ls $HOME/project || echo "Directory not found."