web-dev-qa-db-fra.com

Que signifie "-ne" en bash?

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

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

[ $RESULT -ne 0 ] 
42
ZenBalance

C'est l'une de ces choses qui peuvent être difficiles à rechercher si vous ne savez pas déjà où chercher.

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

Il y a aussi une commande externe qui fait la même chose; sur de nombreux systèmes, il est fourni par le paquet GNU Coreutils.

[ est équivalent à la commande test, sauf que [ a besoin ] comme dernier argument, et test ne l’a pas.

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

Après la référence à "Expressions conditionnelles Bash", vous obtiendrez la description de -ne, qui est l’opérateur d’inégalité numérique ("ne" signifie "pas égal"). Par contre, != est l'opérateur d'inégalité de chaîne .

Vous pouvez également trouver la documentation bash sur le Web.

La définition officielle de la commande test correspond au standard POSIX (auquel l'implémentation bash devrait se conformer raisonnablement, éventuellement avec certaines extensions). .

64
Keith Thompson

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

Cependant, le test est effectué numériquement, pas 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.
34
Omegaman