Pourquoi 0 est vrai, mais faux est de 1 dans le shell?

false; echo $?

Ci-dessus seront de sortie 1, ce qui est contradictoire avec tous les autres langages de programmation, je sais.

Raison?

  • C'est également dans la ligne de la Manière Unix... ne rien retourner sur la réussite.
  • Parce qu'une sortie de statut n'est pas un booléen. Simple que cela.
  • Gardez à l'esprit que false n'est pas un booléen, comme dans d'autres langages de programmation. C'est juste un programme situé à /bin/false (/usr/bin/false sur un Mac) qui doit toujours retourner une erreur de code de sortie 1. Similaire pour true. Donc il n'y a pas une telle chose comme la coulée ici. C'est juste tout sur les codes de sortie.