exec-Befehl in Linux wird verwendet, um einen Befehl von der bash selbst auszuführen. Dieser Befehl erstellt keinen neuen Prozess, sondern ersetzt nur die Bash durch den auszuführenden Befehl. Wenn der Befehl exec erfolgreich ist, kehrt er nicht zum aufrufenden Prozess zurück.
Syntax:
exec ]
Optionen:
- c: Es wird verwendet, um den Befehl mit leerer Umgebung auszuführen.
- ein Name: Wird verwendet, um einen Namen als nulliges Argument des Befehls zu übergeben.
- l: Wird verwendet, um Bindestrich als nulliges Argument des Befehls zu übergeben.
Hinweis: Der Befehl exec erstellt keinen neuen Prozess. Wenn wir den Befehl exec vom Terminal aus ausführen, wird der laufende Terminalprozess durch den Befehl ersetzt, der als Argument für den Befehl exec bereitgestellt wird.
Der Befehl exec kann in zwei Modi verwendet werden:
- Exec mit einem Befehl als Argument: Im ersten Modus versucht der exec, ihn als Befehl auszuführen, indem er die verbleibenden Argumente (falls vorhanden) an diesen Befehl übergibt und die Umleitungen (falls vorhanden) verwaltet.
Beispiel 1:
Beispiel 2:
Der Befehl exec durchsucht den in der Variablen $PATH angegebenen Pfad, um einen auszuführenden Befehl zu finden. Wenn der Befehl nicht gefunden wird, werden sowohl der Befehl exec als auch die Shell in einem Fehler beendet.
- Ohne Befehl ausführen: Wenn kein Befehl angegeben wird, können die Umleitungen verwendet werden, um die aktuelle Shell-Umgebung zu ändern. Dies ist nützlich, da wir die Dateideskriptoren der Shell nach unseren Wünschen ändern können. Der Prozess wird im Gegensatz zum vorherigen Fall auch nach dem Befehl exec fortgesetzt, aber jetzt werden die Standardeingabe, -ausgabe und -fehler entsprechend den Umleitungen geändert.
Beispiel:
Hier ändert der Befehl exec den Standard aus der Shell in die tmp-Datei und so schreiben alle Befehle, die nach dem Befehl exec ausgeführt werden, ihre Ergebnisse in diese Datei. Dies ist eine der gebräuchlichsten Methoden, exec ohne Befehle zu verwenden.