【发布时间】:2019-05-01 20:02:11
【问题描述】:
my@comp:~/wtfdir$ cat wtf.sh
str1=$(echo "")
str2=$(echo "")
if [ $str1 != $str2 ]; then
echo "WTF?!?!"
fi
my@comp:~/wtfdir$ ./wtf.sh
WTF?!?!
my@comp:~/wtfdir$
WTF在这?!
我是如何编写上述代码的:谷歌搜索“bash 比较字符串”将我带到 this website,上面写着:
你可以在bash中使用if语句检查两个字符串的相等和不等。 “==”用于检查是否相等,“!=”用于检查字符串是否不等。
但我得到了以上内容?
我不明白什么?我做错了什么?
【问题讨论】:
-
行情很重要。运行
[ "$str1" != "$str2" ] -
另外,请记住
[不是特殊语法,它只是一个命令;它的参数与其他所有命令一样经历相同的扩展阶段。如果ls $empty只运行ls没有参数,那么[ $empty != $empty ]只运行[ != ]。 (test的特殊语法替代品是[[,它不存在您在此处询问的问题)。 -
str1=足以将空值分配给str1。
标签: string bash string-comparison