String 使用if-else比较2个字符串的Shell脚本
我使用shell脚本比较两个字符串变量是否为空。并根据哪些变量为空运行一些操作String 使用if-else比较2个字符串的Shell脚本,string,shell,if-statement,String,Shell,If Statement,我使用shell脚本比较两个字符串变量是否为空。并根据哪些变量为空运行一些操作 a="" b="" read a read b if [ -z $a ] && [ -n $b ] ;then echo "Var a is blank" elif [ -n $a ] && [ -z $b ] ;then echo "Var b is blank" elif [ -n $a ] && [ -n $b ] ; then ech
a=""
b=""
read a
read b
if [ -z $a ] && [ -n $b ] ;then
echo "Var a is blank"
elif [ -n $a ] && [ -z $b ] ;then
echo "Var b is blank"
elif [ -n $a ] && [ -n $b ] ; then
echo "Both fields not empty"
else
echo "Both fields are blank"
fi
如果我的字符串变量有空格,我收到if else语句的二进制运算符预期错误。我做错了什么?请帮助。您有语法错误。您可以使用以下选项:
if [[ -z "$a" && -n "$b" ]]; then
echo "a is empty"
elif [[ -n "$a" && -z "$b" ]]; then
echo "b is empty"
elif [[ -z "$a" && -z "$b" ]]; then
echo "both are empty"
else
echo "both are non-empty"
fi
始终双引号引用变量,如下所示:
if [ -z "$a" ] && [ -n "$b" ] ;then
...
这将保护字符串中的所有空格。如果您使用的是BASH,那么我建议您最好开始使用
[[和]]]
,以获得更简单的语法和更多的功能。