J'ai un script shell dans lequel nous avons les lignes suivantes if [ -z "$xyz" ]
et if [ -n "$abc" ]
, mais je ne suis pas sûr de leur but. Quelqu'un peut-il s'il vous plaît expliquer?
J'ai un script shell dans lequel nous avons les lignes suivantes if [ -z "$xyz" ]
et if [ -n "$abc" ]
, mais je ne suis pas sûr de leur but. Quelqu'un peut-il s'il vous plaît expliquer?
Réponses:
Vous pouvez trouver une référence très agréable pour les opérateurs de bash ici . Si vous utilisez un shell différent, recherchez-le <my shell> operators
et vous trouverez tout ce dont vous avez besoin. Dans votre cas particulier, vous utilisez:
-n
string is not null.
-z
string is null, that is, has zero length
Pour illustrer:
$ foo="bar";
$ [ -n "$foo" ] && echo "foo is not null"
foo is not null
$ [ -z "$foo" ] && echo "foo is null"
$ foo="";
$ [ -n "$foo" ] && echo "foo is not null"
$ [ -z "$foo" ] && echo "foo is null"
foo is null
man test
ou man [
vous donnera toutes les options pour tester la commande. Dans ce cas, -n teste pour voir si le contenu de $ abc a une longueur non nulle et -z teste pour voir si le contenu de $ xyz est une chaîne de longueur nulle.
man test
(toujours?) Donne la page de manuel de la version du programme externe, qui (pour la version GNU-coreutils au moins) avertit explicitement que certains shells (la plupart des IME) ont une version intégrée qui peut être différente.