주어진 문자열 bin/bash에서 하위 문자열의 위치를 ​​찾는 스크립트

주어진 문자열 bin/bash에서 하위 문자열의 위치를 ​​찾는 스크립트

주어진 문자열에서 부분 문자열의 위치(인덱스)를 알려주는 쉘 프로그램을 작성해야 합니다.

  • 입력 예:-
 Code Quotient - Get Better at Programming 
 at 
  • 샘플 출력: - 28

코드를 작성했지만 모든 경우에 -1이 표시됩니다. 누군가 오류를 찾도록 도와주세요.

#!/bin/bash
read a
read b
if [[ "$a" == "$b" ]]; then
    rest=${a#*$b}
    echo $(( ${#a} - ${#rest} - ${#b} +1 ))
else
    echo "-1"
fi

답변1

표현식은 [[ "$a" == "$b" ]]두 문자열이 동일한지 확인합니다. 하나는 다른 것의 하위 문자열이 되도록 의도되었기 때문에 거의 일치하지 않으므로 실패합니다 if.

관련 정보