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" ]

있다앞의 매개변수 ]와 중간에 있는 ( =)는 문자열을 비교하려는 명령을 나타냅니다.

관련 정보