728x90
매개 변수 확장(Parameter Expansion)
테스트하기 위한 변수: string="abc-efg-123-abc"
문자 | 설명 |
---|---|
${변수} | $변수와 동일하지만 {} 사용해야만 동작하는 것들이 있음(예: echo ${string}) |
${변수:위치} | 위치 다음부터 문자열 추출(예: echo ${string:4}) |
${변수:위치:길이} | 위치 다음부터 지정한 길이 만큼의 문자열 추출(예: echo ${string:4:3}) |
${변수:-단어} | 변수 미선언 혹은 NULL일때 기본값 지정, 위치 매개 변수는 사용 불가(예: echo ${string:-HELLO}) |
${변수-단어} | 변수 미선언시만 기본값 지정, 위치 매개 변수는 사용 불가(예: echo ${string-HELLO}) |
${변수:=단어} | 변수 미선언 혹은 NULL일때 기본값 지정, 위치 매개 변수 사용 가능(예: echo ${string:=HELLO}) |
${변수=단어} | 변수 미선언시만 기본값 지정, 위치 매개 변수 사용 가능(예: echo ${string=HELLO}) |
${변수:?단어} | 변수 미선언 혹은 NULL일때 단어 출력 후 스크립트 종료,(예: echo ${string:?HELLO}) |
${변수?단어} | 변수 미선언시만 단어 출력 후 스크립트 종료(예: echo ${string?HELLO}) |
${변수:+단어} | 변수 선언시만 단어 사용(예: echo ${string:+HELLO}) |
${변수+단어} | 변수 선언 혹은 NULL일때 단어 사용(예: echo ${string+HELLO}) |
${#변수} | 문자열 길이(예: echo ${#string}) |
${변수#단어} | 변수의 앞부분부터 짧게 일치한 단어 삭제(예: echo ${string#a*b}) |
${변수##단어} | 변수의 앞부분부터 길게 일치한 단어 삭제(예: echo ${string##a*b}) |
${변수%단어} | 변수의 뒷부분부터 짧게 일치한 단어 삭제(예: echo ${string%b*c}) |
${변수%%단어} | 변수의 뒷부분부터 길게 일치한 단어 삭제(예: echo ${string%%b*c}) |
${변수/찾는단어/변경단어} | 처음 일치한 단어를 변경(예: echo ${string/abc/HELLO}) |
${변수//찾는단어/변경단어} | 일치하는 모든 단어를 변경(예: echo ${string//abc/HELLO}) |
${변수/#찾는단어/변경단어} | 앞부분이 일치하면 변경(예: echo ${string/#abc/HELLO}) |
${변수/%찾는단어/변경단어} | 뒷부분이 일치하면 변경(예: echo ${string/%abc/HELLO}) |
${!단어*}, ${!단어@} | 선언된 변수중에서 단어가 포함된 변수 명 추출(예: echo ${!string*}, echo ${!string@}) |
변수 테스트
쉘 스크립트 생성 : PE.sh
작성코드
#!/bin/bash
string="abc-efg-123-abc"
echo ${string}
echo ${string:4}
echo ${string:4:3}
echo ${str-HELLO}
echo ${str=HELLO}
echo ${str=HELLO}
결과
쉘 스크립트 실행 : ./PE.sh
abc-efg-123-abc
efg-123-abc"
efg
HELLO
HELLO
HELLO
나머지는 직접 테스트 해보자.
반응형
그리드형
'IT > 리눅스 (Linux)' 카테고리의 다른 글
[리눅스] 패키지 프로그램 설치/관리 (rpm, yum) (0) | 2022.03.07 |
---|---|
쉘 스크립트(Shell Script) - 연산자[논리,산술,비트,기타, 비교] (0) | 2022.02.17 |
쉘 스크립트(Shell Script) - 특수 매개 변수[$$, $?, $!, $-, $_] (0) | 2022.02.17 |
쉘 스크립트(Shell Script) - 위치 매개 변수[$0, $1, $*, $@, $#] (0) | 2022.02.17 |
쉘 스크립트(Shell Script) - 변수(Variable) 사용법 [전역, 지역, 환경] (2) | 2022.02.16 |
댓글