Question

Dans le répertoire gnuwin32 / bin, vous trouverez un fichier programme étrange nommé [. exe

Je ne pouvais pas le trouver dans la documentation, gnuwin32.sourceforge.net ou dans une recherche google. Je l'ai donc exécuté et j'ai obtenu:

$ [
[: missing `]'
$

donc je l'ai donné] en tant que paramètre et obtenu

$ [ ]

$

Il ne s’est pas plaint, alors j’ai pensé que c’était sur la bonne voie. J'ai essayé:

$ [ hello ]

encore, rien à redire. alors j'ai essayé une expression arithmétique:

$ [ 1 + 1 ]
[: +: binary operator expected
$

J'ai essayé plusieurs combinaisons différentes, notamment prefix & amp; notation postfixée mais rien ne semblait fonctionner. Que fait cette chose?

Était-ce utile?

La solution

Il est utilisé pour évaluer les expressions conditionnelles .
C'est l'équivalent (éventuellement d'un lien symbolique vers?) De l'exécutable test .
La page de manuel est ici .

Vous pouvez voir cela dans beaucoup de scripts bash:

if [ "$LOGNAME" = "scott" ]
then
    echo "Logged in as Scott"
else
     echo "incorrect user"
fi

Ce qui est drôle, c'est que le [ ] ne fait pas partie du langage bash, c'est en fait un exécutable dont le code de retour est utilisé par le 'IF'. C'est la raison pour laquelle l'espace après [ et son premier argument est obligatoire - s'il était omis, le script essaierait d'exécuter [ "$ LOGNAME" et échec.

Vous ne pouvez pas effectuer d'opérations arithmétiques avec ce dernier - utilisez expr pour cela (voir ici ). Cependant, vous pouvez tester une large gamme de propriétés de fichier (existe-t-il? De quel type est-il? Etc.) ainsi que d'utiliser des opérateurs de comparaison sur les chaînes et les nombres.

Autres conseils

test a

==

[ a ]

C'est juste du sucre

Éditer: Pour clarifier, c’est la syntaxe conditionnelle, par exemple. [" a " = & a; a " ]

Une autre réponse déjà mentionnée est identique à test . Sur bash, il est également intégré, vous pouvez donc obtenir l’aide correspondante dans help ( help test ).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top