Que signifie la commande "-ne" dans un script bash?
Par exemple, que fait la ligne suivante d'un script bash?
[ $RESULT -ne 0 ]
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.
test
et [
)-ne
est sous " arg1 OP arg2 ")test
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). .
"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.