Shell脚本不适用于-z或以-z为条件

时间:2019-10-18 12:56:08

标签: shell

我的文件名为test2.sh。

我正在使用./test2.sh

执行文件
#!/bin/bash

a="1111"
b=""
if [ -z $b -o -z $a ]
then
echo "a or b is empty"
else
echo "a and b not empty"
fi

它总是显示a和b在输出中不为空。 怎么了?

如果我仅使用[-z $ b],则它可以正常工作。

我还尝试了[-z $ b -o -a $ b],然后它就可以了。

同时使用-o -z是否有问题?

1 个答案:

答案 0 :(得分:2)

如果我了解您的问题,您可以通过以下方式尝试:

#!/bin/bash

a="1111"
b=""
if [ -z "$b" ] || [ -z "$a" ]
then
echo "a or b is empty"
else
echo "a and b not empty"
fi

输出:

  

a =“ 1111”和b =“” => a或b为空

     

a =“”和b =“” => a或b为空

     

a =“”和b =“ 111” => a或b为空

     

a =“ 11”和b =“ 22” => a和b不为空

我希望这对您有帮助