In Linux is de uitvoerend command vervangt het huidige shell-proces door een gespecificeerde opdracht – in wezen wordt de proces-ID van de huidige shell overgedragen naar een nieuw proces, dat vervolgens die PID aanneemt. De meeste informele desktop Linux-gebruikers zouden dit niet moeten gebruiken uitvoerend. Het is een krachtig programma met een beperkte use case voor scripting. In normale omstandigheden heeft het zelden een waarde om aan te roepen uitvoerend voor routinematige shell-operaties.
Hoe ‘exec’ werkt
Wanneer je rent uitvoerend met een nieuw commando als argument, voert Linux dat nieuwe commando uit met hetzelfde proces als de shell die het aanriep. Als u het uitvoert zonder een nieuwe opdracht op te geven, vinden relevante omleidingen plaats in de huidige shell. Wanneer u bijvoorbeeld een shell-sessie start door een programma voor terminalbeheer te starten, wordt automatisch de standaard shell aangeroepen. Wanneer je typt Uitgang, wordt de shell-sessie beëindigd en, afhankelijk van de terminalbeheersoftware, kan het venster verdwijnen. Om te zien hoe: uitvoerend werkt, start u een shell en start u vervolgens een tweede shell in dezelfde sessie. Als u bijvoorbeeld Zsh gebruikt, start u een andere Zsh-sessie wanneer het terminalvenster wordt geopend.
Wanneer u het lopende proces controleert, zult u zien dat elke keer dat u de shell aanroept, er een nieuwe taak met een apart proces-ID verschijnt. En elke keer dat u een shell-sessie verlaat met de Uitgang commando, wordt een van die sessies beëindigd. Als je uitvoert datum van een shell-sessie, ziet u de datum weergegeven in standaarduitvoer. Als u vervolgens uitvoerend om standaarduitvoer om te leiden naar een tekstbestand, schrijft de standaarduitvoer die u verwacht te zien naar het bestand, totdat u de Zsh-sessie afsluit die uitvoerend controles. Wanneer u afsluit, wordt de standaarduitvoer weergegeven zoals verwacht omdat de oorspronkelijke Zsh-sessie weer actief wordt.
Use Case voor ‘exec’
Een veelvoorkomende use-case voor uitvoerend heeft betrekking op het opschonen van een script. Als u een script moet gebruiken om de parameters voor een opdracht te verbeteren, beëindigt u het script dan met uitvoerend start het nieuwe programma met die parameters en sluit de huidige shell-sessie.