Citation:
Si tu écris ta commande telle que tu l'as postée ici, tu ne passeras pas « echo 'toto' | une_commande_qui_n-existe_pas » à ton shell, mais uniquement « echo 'toto' » et tu vas piper la sortie de ton shell vers la commande qui n'existe pas. L'erreur se produira donc en amont de ton shell. Chez bash, donc.
En fait si, je passe bien la commande "echo toto | function" à mon shell.
Citation:
Ceci étant, ton shell s'exécute ensuite comme un processus ordinaire. S'il ne peux accomplir la commande parce que l'un des programmes n'existe pas, c'est à lui de faire un « return 127; » depuis la fonction main(), ou un « exit(127); » d'une manière générale. Cela ne passe pas par errno, ou autre.
Oui je suis tout à fait d'accord mais comment-je fais pour savoir que le code de retour est 127 ?