如何使用-z
选项确保变量不为空?
errorstatus="notnull"
if [ !-z $errorstatus ]
then
echo "string is not null"
fi
它返回了错误:
./test: line 2: [: !-z: unary operator expected
如何使用-z
选项确保变量不为空?
errorstatus="notnull"
if [ !-z $errorstatus ]
then
echo "string is not null"
fi
它返回了错误:
./test: line 2: [: !-z: unary operator expected
当然会有影响。替换变量后,读取的内容为 [ !-z ]
,这不是有效的 [
命令。应该使用双引号或者使用[[
。
if [ ! -z "$errorstatus" ]
if [[ ! -z $errorstatus ]]
如果测试 -n "$errorstatus",那么 echo errorstatus 不是空的 结束
test -n $1
为真是因为它相当于test -n
,它的结果是真的,因为字符串“-n”不为空。这里的“-n”并不被视为选项,而是test命令要评估的字符串。然而,test -n "$1"
可以正常工作。 - William Pursell我认为这是你需要的语法:
if [ -z != $errorstatus ]
then
commands
else
commands
fi
test -z !=
?? - Otheus如果 [ !-z $errorstatus ],只需在 ! 和 -z 之间加一个空格,像这样: 如果 [ ! -z $errorstatus ]