Bash:ParameterSubstitution
매개 변수 확장 (Parameter Expansion)에 대한 정리.
List
문자 | 설명 | EXAMPLE |
| $변수와 동일하지만 {} 사용해야만 동작하는 것들이 있음 | |
| 위치 다음부터 문자열 추출 | |
| 위치 다음부터 지정한 길이 만큼의 문자열 추출 | |
| 변수 미선언 혹은 NULL일때 기본값 지정, 위치 매개 변수는 사용 불가 | |
| 변수 미선언시만 기본값 지정, 위치 매개 변수는 사용 불가 | |
| 변수 미선언 혹은 NULL일때 기본값 지정, 위치 매개 변수 사용 가능 | |
| 변수 미선언시만 기본값 지정, 위치 매개 변수 사용 가능 | |
| 변수 미선언 혹은 NULL일때 단어 출력 후 스크립트 종료, | |
| 변수 미선언시만 단어 출력 후 스크립트 종료 | |
| 변수 선언시만 단어 사용 | |
| 변수 선언 혹은 NULL일때 단어 사용 | |
| 문자열 길이 | |
| 변수의 앞부분부터 짧게 일치한 단어 삭제 | |
| 변수의 앞부분부터 길게 일치한 단어 삭제 | |
| 변수의 뒷부분부터 짧게 일치한 단어 삭제 | |
| 변수의 뒷부분부터 길게 일치한 단어 삭제 | |
| 처음 일치한 단어를 변경 | |
| 일치하는 모든 단어를 변경 | |
| 앞부분이 일치하면 변경 | |
| 뒷부분이 일치하면 변경 | |
| 선언된 변수중에서 단어가 포함된 변수 명 추출 | |
Test code: string="abc-efg-123-abc"
대/소문자 변환
Bash 4.0 부터 다음과 같이 가능하다.
소문자:
만약 위 문법이 안된다면 awk를 사용하자:
파일 이름 분리
FILE=/home/username/Project/scot.remote/20230727/cvt_pm_23-long.mp4
가 있다면 "${FILE##*/}"
를 쓰면 cvt_pm_23-long.mp4
만 남는다.
See also
Favorite site
- [추천] Shell Parameter Expansion (Bash Reference Manual)
- Shell 스크립트에서 매개변수 치환
- KLDP: 고급 Bash 스크립팅 가이드: Bash를 이용한 쉘 스크립팅 완전 가이드 // 문자열 조작
- [추천] Bash 입문자를 위한 핵심 요약 정리 (Shell Script) 1
References
-
Bash_summarizes_the_key_for_beginners.pdf ↩