bash 字符串中的字符串相等性是相等的,但实际上它们并不相等

bash 字符串中的字符串相等性是相等的,但实际上它们并不相等
#!/bin/bash
STR1="David20"
STR2="fbhfthtrh"

if [ "$STR1"="$STR2" ]; then

        echo "Both the strings are equal"
else
        echo "Strings are not equal"
fi

答案1

[是一个普通命令(尽管是内置命令),结束语]只是它的一个参数。"$STR1"="$STR2"扩展变量并删除引号后也是如此。重点是"$STR1"="$STR2"变成参数,如果前面只有一个参数]并且它是一个非空字符串,则结果为 true(退出状态0)。

你要

[ "$STR1" = "$STR2" ]

现在有前面的参数]和中间的 ( =) 告诉命令您要比较字符串。

相关内容