118 votes

Que signifie "-ne" en bash ?

Que signifie la commande "-ne" dans un bash script ?

Par exemple, que fait la ligne suivante d'un script bash ?

[ $RESULT -ne 0 ]

154voto

Keith Thompson Points 85120

Cela fait partie des choses qui peuvent être difficiles à rechercher si vous ne savez pas déjà où chercher.

[ est en fait une commande, qui ne fait pas partie de la syntaxe de l'interpréteur de commandes bash comme on pourrait s'y attendre. Il s'agit d'une commande intégrée à Bash, et elle est donc documentée dans le manuel de Bash.

Il existe également une commande externe qui fait la même chose ; sur de nombreux systèmes, elle est fournie par le paquetage GNU Coreutils.

[ est équivalent à la test sauf que [ nécessite ] comme dernier argument, et test ne le fait pas.

En supposant que la documentation bash est installée sur votre système, si vous tapez info bash et chercher 'test' o '[' (les apostrophes font partie de la recherche), vous trouverez la documentation relative à l'application [ également connue sous le nom de test commande. Si vous utilisez man bash au lieu de info bash chercher ^ *test (le mot test au début d'une ligne, après un certain nombre d'espaces).

En suivant la référence à "Bash Conditional Expressions", vous arriverez à la description de -ne qui est l'opérateur d'inégalité numérique ("ne" signifie "non égal"). Par contraste, != est le chaîne de caractères opérateur d'inégalité.

Vous pouvez également trouver la documentation de bash sur le web.

En officiel définition de la test est le standard POSIX (auquel l'implémentation de bash devrait se conformer raisonnablement bien, peut-être avec quelques extensions).

89voto

Omegaman Points 742

"pas égal" Donc, dans ce cas, $RESULT est testé pour ne pas être égal à zéro.

Cependant, le test est fait numériquement et non par ordre alphabétique :

n1 -ne n2     True if the integers n1 and n2 are not algebraically equal.

par rapport à :

s1 != s2      True if the strings s1 and s2 are not identical.

Prograide.com

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.

Powered by:

X