1 votes

Pourquoi Bash signale-t-il "commande non trouvée" dans certains cas dans le terminal mais pas dans d'autres ?

Souvent, mais pas toujours, lorsque je lance le Terminal sur mon ordinateur et que j'utilise pipe ( | ) dans une commande, pbpaste | wc à titre d'exemple, bash donne -bash:  wc: command not found . (Le double espace n'est pas une faute de frappe).

Après un certain temps, j'ai trouvé une solution : J'ai enlevé l'espace après le tuyau ( pbpaste |wc ) et tout a fonctionné normalement. Mais lorsque j'ai exécuté le pipe avec l'espace, tout a fonctionné, et bash a trouvé la commande parfaitement valide, même si lorsque j'ai entré exactement la même commande quelques minutes auparavant, il n'a pas du tout aimé la commande.

Voici une capture d'écran :

Screenshot

J'ai deux questions, très similaires :

  • Qu'est-ce qui fait que bash traite ces deux lignes de manière différente, même si elles sont identiques ? Je n'ai aucune idée de la raison pour laquelle cela se produit.
  • Comment pourrais-je réparer ça ?

9voto

Console Points 608

Le message d'erreur contient un indice du problème : un espace supplémentaire apparaît :

bash:  wc: … 

Plutôt que :

bash: wc: …

Je suppose d'après votre question que vous utilisez un Mac. Je vais supposer que vous utilisez une disposition de clavier dans laquelle la saisie de la touche | nécessite l'utilisation de l'option Alt/Option clé. Je pense que ce qui pourrait se passer, c'est que vous laissez votre doigt s'attarder sur la Alt pendant que vous tapez l'espace.

Alt + Space types a espace insécable plutôt qu'un caractère d'espace normal, que l'analyseur de Bash ne considère pas comme un espace blanc et qu'il prend donc comme faisant partie du nom de la commande.

Cela fonctionne la deuxième fois parce que vous tapez plus soigneusement !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X