GeeksforGeeks

la commande exec sous Linux est utilisée pour exécuter une commande à partir du bash lui-même. Cette commande ne crée pas de nouveau processus, elle remplace simplement le bash par la commande à exécuter. Si la commande exec réussit, elle ne revient pas au processus appelant.

Syntaxe:

exec ] 

Options:

  • c: Il est utilisé pour exécuter la commande avec un environnement vide.
  • a name : Utilisé pour passer un nom comme argument zéro de la commande.
  • l : Utilisé pour passer le tiret comme argument zéro de la commande.

Remarque: la commande exec ne crée pas de nouveau processus. Lorsque nous exécutons la commande exec à partir du terminal, le processus terminal en cours est remplacé par la commande fournie comme argument de la commande exec.

La commande exec peut être utilisée en deux modes :

  • Exec avec une commande en argument : Dans le premier mode, l’exec essaie de l’exécuter en tant que commande en passant les arguments restants, le cas échéant, à cette commande et en gérant les redirections, le cas échéant.Exemple 1 :

    Exemple 2:

    La commande exec recherche le chemin mentionné dans la variablePATHPATH pour trouver une commande à exécuter. Si la commande n’est pas trouvée, la commande exec ainsi que le shell se terminent par une erreur.

  • Exec sans commande : Si aucune commande n’est fournie, les redirections peuvent être utilisées pour modifier l’environnement shell actuel. Ceci est utile car cela nous permet de modifier les descripteurs de fichier du shell selon notre désir. Le processus continue même après la commande exec contrairement au cas précédent, mais maintenant l’entrée, la sortie et l’erreur standard sont modifiées en fonction des redirections.

    Exemple:

    Ici, la commande exec change la norme du shell en fichier tmp et toutes les commandes exécutées après la commande exec écrivent leurs résultats dans ce fichier. C’est l’une des façons les plus courantes d’utiliser exec sans aucune commande.

Balises de l’article:

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *