一. 字符串是否相等.
建议用
if [[ "${str1}" == "${str2}" ]]
或
if [ "${str1}" = "${str2}" ]
注意: == left and right has space!
str1=
""
str2
=
str3
=
"
hello
"
str4
=
"
world
"
# true
if
[[
"
${str1}
"
==
"
${str2}
"
]];
then
echo
"
12 true
"
else
echo
"
12 false
"
fi
# false
if
[[
"
${str1}
"
==
"
${str3}
"
]];
then
echo
"
13 true
"
else
echo
"
13 false
"
fi
# false
if
[[
"
${str3}
"
==
"
${str4}
"
]];
then
echo
"
34 true
"
else
echo
"
34 false
"
fi
# false
# str5未声明
if
[[
"
${str3}
"
==
"
${str5}
"
]];
then
echo
"
35 true
"
else
echo
"
35 false
"
fi
单个[]也是正确的
str1=
""
str2
=
str3
=
"
hello
"
str4
=
"
world
"
#
true
if
[
"
${str1}
"
=
"
${str2}
"
];
then
echo
"
12 true
"
else
echo
"
12 false
"
fi
#
false
if
[
"
${str1}
"
=
"
${str3}
"
];
then
echo
"
13 true
"
else
echo
"
13 false
"
fi
#
false
if
[
"
${str3}
"
=
"
${str4}
"
];
then
echo
"
34 true
"
else
echo
"
34 false
"
fi
#
false
# str5未声明
if
[
"
${str3}
"
=
"
${str5}
"
];
then
echo
"
35 true
"
else
echo
"
35 false
"
fi
二. 字符串是否为空.
建议用
if [ "${str1}" == "" ]
或
if [[ "${str1}" == "" ]]
if
[
"
$str
"
=
""
]
if
[ x
"
$str
"
=
x ]
if
[ -z
"
$str
"
] (-
n 为非空)
注意:都要代双引号,否则有些命令会报错
建议用:
if [ "$str" = "" ]
或
if [[ "${str1}" == "" ]]
例子
str1=
""
str2
=
str3
=
"
hello
"
str4
=
"
world
"
# 以下都输出empty
# $str5不存在, 也是empty
if
[
"
$str1
"
=
""
];
then
echo
"
empty
"
fi
if
[
"
$str2
"
=
""
];
then
echo
"
empty
"
fi
if
[
"
$str5
"
==
""
];
then
echo
"
empty
"
fi
if
[ -z
"
$str5
"
];
then
echo
"
empty
"
fi
if
[[ $str5 ==
""
]];
then
echo
"
empty
"
fi
if
[[
"
$str5
"
==
""
]];
then
echo
"
empty
"
fi
if
[[
"
$str1
"
==
""
]];
then
echo
"
empty
"
fi

