Variable de script shell non vide (option -z)

Comment s’assurer qu’une variable n’est pas vide avec l’option -z ?

 errorstatus="notnull" if [ !-z $errorstatus ] then echo "ssortingng is not null" fi 

Il renvoie l’erreur:

 ./test: line 2: [: !-z: unary operator expected 

Bien sûr que oui. Après avoir remplacé la variable, il lit [ !-z ] , qui n’est pas une commande valide. Utilisez des guillemets doubles ou [[ .

 if [ ! -z "$errorstatus" ] if [[ ! -z $errorstatus ]] 

Pourquoi utiliseriez-vous -z? Pour tester si une chaîne n’est pas vide, vous utilisez généralement -n:

 si test -n "$ errorstatus";  puis
   echo errorstatus n'est pas vide
 Fi

Je pense que c’est la syntaxe que vous recherchez:

 if [ -z != $errorstatus ] then commands else commands fi