배쉬 (bash) 의 변수 확장 (parameter expansion) 에 대해 알아보자.
1. 치환 확장
변수에 저장된 값을 치환하여 출력해 보자.
example="www.google.google.com"
echo ${example/google/xtmci} # www.xtmci.google.com 을 출력.
echo ${example//google/xtmci} # www.xtmci.xtmci.com 을 출력.
# 새로운 값을 지정하지 않으면 기존의 값이 삭제된다.
echo ${example/google/} # www..google.com 을 출력.
echo ${example//google/} # www...com 을 출력.
2. 부문자열 (substring) 추출
변수에서 문자열의 일부를 추출하여 출력해 보자.
example="www.xtmci.com"
echo ${example:4:5} # xtmci 를 출력.
echo ${example:4} # xtmci.com 을 출력.
# 문자 위치가 음수일 때는 마이너스 기호 앞에 공백이 필요하다.
echo ${example: -7:3} # mci 를 출력.
echo ${example: -7} # mci.com 을 출력.
echo ${example:4:-6} # xtm 을 출력.
3. 부문자열 (substring) 삭제
변수에서 문자열의 일부를 삭제하여 출력해 보자.
문자열의 앞부분에서 지정한 패턴을 삭제한다.
example="www.xtmci.xtmci.com"
echo ${example#www} # .xtmci.xtmci.com 을 출력.
echo ${example#*xtmci} # .xtmci.com 을 출력.
echo ${example##*xtmci} # .com 을 출력.
문자열의 뒷부분에서 지정한 패턴을 삭제한다.
example="www.xtmci.xtmci.com"
echo ${example%com} # www.xtmci.xtmci. 을 출력.
echo ${example%xtmci*} # www.xtmci. 을 출력.
echo ${example%%xtmci*} # www. 을 출력.
4. 문자열의 길이 출력
변수에 저장된 문자열의 길이를 출력해 보자.
example="www.xtmci.com"
echo ${#example} # 13 을 출력.
변수가 배열인 경우에는 배열 요소의 개수가 출력된다.
example=(xtmci google www com)
echo ${#example[@]} # 4 를 출력. 배열 요소의 개수이다.
echo ${#example[0]} # 5 를 출력. 문자열 xtmci 의 길이이다.
echo ${#example[3]} # 3 을 출력. 문자열 com 의 길이이다.