Quelle est la signification de la valeur de retour 127 de $ ? dans UNIX.
Cela se produit également si un bash script n'a pas le mode "+x" mais existe bel et bien.
Vous pouvez essayer d'utiliser which [program]
pour voir quel binaire le système d'exploitation utilise. Si le résultat est vide, l'étape suivante consiste à vérifier le bit d'exécution et le PATH.
@cr125rider, which
n'est pas particulièrement précis -- il ne connaît pas les alias, les fonctions du shell, la mémorisation de la recherche PATH, ou d'autres facteurs internes à l'état du shell. Il est préférable d'utiliser type
un module intégré au shell qui connaît toutes ces choses.
Une convention de l'interpréteur de commandes est qu'un exécutable réussi doit sortir avec la valeur 0. Toute autre valeur peut être interprétée comme un échec quelconque, de la part de bash ou de l'exécutable qui vient de s'exécuter. Voir aussi $PIPESTATUS et le STATUT DE SORTIE de la page de manuel de bash :
Pour les besoins de l'interpréteur de commandes, une commande qui sort avec un état de sortie nul a réussi. Un état de sortie de zéro indique un succès. Un état de sortie différent de zéro indique un échec. Lorsqu'une commande se termine sur un signal fatal N, bash utilise la valeur 128+N comme état de sortie.
If a command is not found, the child process created to execute it returns a status of 127. If a com-
mand is found but is not executable, the return status is 126.
If a command fails because of an error during expansion or redirection, the exit status is greater than
zero.
Shell builtin commands return a status of 0 (true) if successful, and non-zero (false) if an error
occurs while they execute. All builtins return an exit status of 2 to indicate incorrect usage.
Bash itself returns the exit status of the last command executed, unless a syntax error occurs, in
which case it exits with a non-zero value. See also the exit builtin command below.
Il n'a pas de signification particulière, si ce n'est que le dernier processus à quitter l'a fait avec un état de sortie de 127.
Cependant, il est également utilisé par bash (en supposant que vous utilisez bash comme interpréteur de commandes) pour vous dire que la commande que vous avez essayé d'exécuter n'a pas pu être exécutée (c'est-à-dire qu'elle n'a pas été trouvée). Il n'est malheureusement pas possible de déduire immédiatement si le processus a quitté avec le statut 127, ou s'il n'a pas été trouvé.
EDIT :
Pas immédiatement déductible, sauf pour la sortie sur la console, mais c'est un débordement de pile, donc je suppose que vous faites cela dans un script.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.