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

[これは通常のコマンド(組み込みコマンドにもかかわらず)であり、閉じるステートメント]は引数の1つにすぎません。"$STR1"="$STR2"変数を展開して引用符を削除した後も同様です。ポイント"$STR1"="$STR2"一つパラメータ、先行パラメータが1つだけで]空でない文字列の場合、結果はtrueです(終了ステータス0)。

欲しい

[ "$STR1" = "$STR2" ]

あるサム前のパラメータ]と中間の(=)は、文字列を比較するコマンドを表します。

関連情報