En fait, le second donnera une erreur se plaignant que « IsServerStarted » n'est pas un entier valide. Il est considéré comme une constante de chaîne de sorte que quelque chose comme
var="IsServerStarted"
if [ IsServerStarted == "$var" ] ; then
réussirait (ou échouera s'il n'était pas égal).
ndim est correct en ce qui concerne l'exécutable ou la fonction dans le premier exemple que vous avez donné.
Un couple plus de variations à considérer:
if $IsServerStarted ; then ...
Dans celle-ci, la if
est évaluée sur la base de la valeur de retour d'une commande (exécutable ou une fonction) qui est contenue dans la IsServerStarted
variable. Donc, vous pouvez définir IsServerStarted=true
, puis if
réussirait puisque true
est un shell intégré qui retourne toujours vrai. Vous pouvez définir IsServerStarted='grep popsicle freezer' and the
si `passerait ou échouerait selon si vous étiez en dehors des friandises.
if [ $IsServerStarted -eq 0 ]; then ...
Ceci teste simplement si la variable est égale à zéro. Si ce n'est pas un nombre entier valide, cela provoquera un message d'erreur.
@skaaffman a changé le tag de bourne à bash. Pourquoi? Bourne n'est-il pas un sous-ensemble de bash? – sixtyfootersdude