Shell脚本variables不为空(-z选项)

如何使用-z选项确保variables不为空?

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

它返回错误:

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

当然是的。 replacevariables后,它读取[ !-z ] ,这不是一个有效的[命令。 使用双引号,或[[

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

你为什么要用-z? 为了testing一个string是否是非空的,你通常使用-n:

如果testing-n“$ errorstatus”; 然后
  回声errorstatus不是空的
科幻

我认为这是你正在寻找的语法:

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