我的文件名为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是否有问题?
答案 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不为空
我希望这对您有帮助