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