if문의 조건의 문자열 일부 매칭

2021. 2. 8. 12:44IT/S . e . v . e . r . I . n . f . r . a

쉘 스크립트에서 if문에서 찾고자 하는 문자가 포함되어 있는지를 확인하기 위한 

두가지 방법에 대해 이야기 해보려 합니다.



먼저 스크립트를 보시죠

#!/bin/sh

VAR_STR1="This is test string"
VAR_STR2="test"

if [[ "${VAR_STR1}" == *"test"* ]];then
  echo "1st find it"
fi

if [[ "${VAR_STR1}" =~ "test" ]];then
  echo "2nd find it"
fi


첫번째는 아스테리스크(*)를 사용하여 "test" 라는 문자열에 포함된 것을 찾아 분기한 것이고
두번째는 쉘 스크립트의 if문의 기능을 이용한 것입니다.

참고로 "=~"는 bash 버전3 이상일 때 지원합니다. 

개인적으로는 두번째 패턴을 좋아합니다만
버전3 이상이라면 아무거나 써도 문제는 없습니다.