Bash if null
La recherche de la bonne syntaxe qui ressemble à un bash variable et détermine si sa valeur est null, si c'est pour le faire ... sinon continuer sur.
Peut-être quelque chose comme if [ $lastUpdated = null?; then... else...
- Le
bash
documentation utilisenull
comme un synonyme pour la chaîne vide.
Vous devez vous connecter pour publier un commentaire.
Il suffit de tester si la variable est vide:
FOO=
(pas de donner de la valeur) est équivalent àFOO=""
, qui définit la valeur deFOO
à la chaîne vide. Les différents paramètre expansions (${FOO:-default}
vs${FOO-default}
, comme un exemple) vous permettent de faire cette distinction. Une cité à l'expansion d'un unset variable, telle que vous utilisez, s'étend une chaîne de caractères vide, donc-z
ne peut pas distinguer les deux états.Expansion sur @chepner commentaires, voici comment vous pouvez tester un unset (par opposition à définir une éventuelle valeur vide) de la variable:
La
${variable+word}
syntaxe donne une chaîne vide si$variable
est pas défini, et la chaîne "mot" si c'est réglé:[ -z ]
fait et pourquoi) mans c'est beaucoup plus facile d'utiliser des guillemets. Pour le dire d'une autre façon: si quelqu'un pense[ -z ${lastUpdated+set} ]
est un bon moyen de tester un ensemble de variables, ils sont susceptibles d'en déduire que[ -n ${lastUpdated+set} ]
est un bon moyen pour tester un unset variable, mais il va échouer.Pour résumer: Il n'y a pas de véritable null valeur dans bash. Chepner commentaire est sur le point:
Par conséquent, la vérification de la valeur null signifie vérifier qu'une chaîne vide:
Si vraiment ce que vous voulez faire est de vérifier pour un annuler ou vide (c'est à dire "", c'est à dire 'null') variable, utilisez trojanfoe son approche:
Si vous voulez vérifier la météo la variable n'est pas définie, mais sont très bien avec les cordes à vide, Gordon Davisson la réponse est la voie à suivre:
(Paramètre D'Extension est ce qu'il se passe ici)