bash 쉘 스크립트 특정 문자열이 포함되었는지 확인하는 방법
# python 예시
str = "Hello world"
if "world" in str :
print("Found 'world' string.")
else :
print("Not Found 'world' string.")
쉘 스크립트에서는 어떤 문자열에 특정 문자열이 포함되어있는지 확인하고 싶을 때 어떻게 해야할까?
첫 번째 방법, 와일드카드(wildcard, asterisk(*
)) 사용
if [[ "$str1" == *str2* ]]; then ... else ... fi
#!/bin/bash
str="Hello world"
if [[ "$str" == *world* ]]; then
echo "str contains 'world'"
else
echo "str does not contain 'world'"
fi
# Output
str contains 'world'
두 번째 방법, 정규 표현식 연산자(regex operator, =~
) 사용
if [[ "$str1" =~ str2 ]]; then ... else ... fi
#!/bin/bash
str="Hello world"
if [[ "$str" =~ world ]]; then
echo "str contains 'world'"
else
echo "str does not contain 'world'"
fi
# Output
str contains 'world'
주의사항
if 문에 중괄호를 두 개 사용해야 한다. ([[ ]]
)
하나([ ]
)만 사용하면 정상적으로 동작하지 않는다.
또 다른 방법들
- case 구문을 이용하는 방법
- grep 명령어를 이용하는 방법
- ...
등 여러 방법이 있다. 이 방법들에 대해서는 참고 자료 링크에 자세히 나와있다.
참고 자료
728x90
반응형
'Back-End > Linux' 카테고리의 다른 글
[Linux] 하이픈(`-`)으로 시작하는 파일 삭제하기 (0) | 2022.10.25 |
---|---|
[Linux] Ubuntu 20.04에 KVM 설치하기 (0) | 2022.08.12 |
[Linux] /lib, /lib64 의 심볼릭 링크를 삭제했을 때 해결 방법 (0) | 2022.04.12 |
[CentOS] GUI에서 Shell Script를 더블클릭으로 실행하기 (0) | 2022.03.29 |
[Linux] IPC 관련 명령어 사용법(ipcs, ipcrm) (0) | 2021.11.05 |