Eine Befehlszeile der Shell kann auch mehrere Kommandos enthalten, die auf unterschiedliche Weise miteinander verknüpft sind.
1. Einfache Verknüpfung
Programme können auf zwei verschiedene Arten miteinander einfach verknüpft werden. Entweder sie werden durch Strichpunkte (;) voneinander getrennt oder durch Ampersands (&). Im ersten Fall werden die Programme hintereinander ausgeführt, im zweiten Fall gleichzeitig. Programm1 ; Programm2 ; Programm3 Das Programm1 wird ausgeführt. Sobald es beendet ist, wird das Programm2 gestartet, wenn das wieder beendet ist, wird das Programm3 gestartet. Programm1 & Programm2 & Programm3 Programm1 und Programm2 werden gleichzeitig im Hintergrund gestartet, Programm3 in der gleichen Zeit im Vordergrund
2. Ergebnisabhängige Programmverknüpfung
Jedes Unix-Programm gibt nach seiner Beendigung einen Rückgabewert an die aufrufende Shell zurück aus dem entnommen werden kann, ob das Programm erfolgreich (fehlerfrei) abgeschlossen wurde oder ob es zu Fehlern kam. Ein Rückgabewert von 0 bedeutet dabei fehlerfreie Abarbeitung eines Programms, jeder andere Wert weist auf einen aufgetretenen Fehler hin. Der Rückgabewert des letzten Programmaufrufs ist immer in der speziellen Shellvariable $? gespeichert.
Die Shell kann diese Werte benutzen, um Programme ergebnisabhängig zu verbinden. So kann ein Programm entweder dann ausgeführt werden, wenn das vorherige Programm fehlerfrei abgeschlossen wurde oder eben wenn es einen Fehler aufwies:
Programm1 && Programm2
Das Programm2 wird nur ausgeführt, wenn das Programm1 fehlerfrei abgeschlossen wurde (Rückgabewert von Programm1 = 0)
Programm1 || Programm2
Das Programm2 wird nur ausgeführt, wenn das Programm1 nicht fehlerfrei abgeschlossen wurde (Rückgabewert von Programm1 > 0)
So können mehre Consolen Befehle gleichzeitig eingeben werden und diese werden dann nacheinander abgearbeitet.