https://wiki.kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/internalvariables.html
$BASH
ㄴBash 실행 파일의 경로로, 보통은 /bin/bash임
$IFS
입력 필드 구분자
디폴트는 공백문자(빈칸, 탭, 뉴라인)지만 콤마로 구분된 데이타 파일을 파싱하려는 경우처럼 변경이 가능합니다. $*는 $IFS의 첫번째 문자를 사용하는 것에 주의하세요. 예 6-1 참고.
"$*" 쿼우팅해서 쓸시 : [ 한 낱말의 형태로 ]
$* 쿼우팅 안하고 그냥 쓸시에 : [ 뛰어쓰기를 구분자로하여 위치 매개변수 적용 ]
"$@" 쿼우팅해서 쓸시 : [ 쿼우팅을 기준으로 위치매개변수 채택 ]
$@ 쿼우팅 안하고 그냥 쓸시에 : [ 뛰어쓰기를 구분자로 하여 위치 매개변수 적용 ]
위치 매개변수(Positional Parameters)$0, $1, $2, etc.
위치 매개변수로서, 명령어줄에서 스크립트로 넘겨지거나 함수로 넘겨지거나 set 명령어로 강제로 설정됨(예 5-5 과 예 11-10 참고).
$#
명령어줄 인자 [2] 의 갯수나 위치 매개변수들(예 34-2 참고)
$*
한 낱말로 표시되는 위치 매개변수들 모두
$@
$*과 똑같지만 각 매개변수는 쿼우트된 문자열로 취급됩니다. 즉, 해석되거나 확장없이 있는 그대로 넘겨집니다. 그 결과로 각 인자는 각각이 서로 다른 낱말로 구분돼서 표시됩니다.
IFS를 빈값으로 유지하고 스크립트 파일을 구동하면 원하는대로 구분자가 적용되지않아
위치매개변수의 값이 제대로 나오지 않으니 주의
다른 특수 매개변수
[ 문자열 조작 ]
문자열 길이
stringZ=ABCDE
echo ${#stringZ}
echo `expr length $stringZ`
echo `expr "$stringZ" : '.*'`
문자열 시작에서부터 매칭되는 문자열조각(substring)의 길이
방식 1)
expr match "$string" '$substring'
ㄴ $substring은 정규표현식입니다.
방식 2)
expr "$string" : '$substring'
ㄴ $substring은 정규표현식입니다.
인덱스
방식 1)
expr index $stirng $substring
ㄴ $string에서 일치하는 $substring의 첫 문자의 위치
문자열조각 추출(Substring Extraction)
방식 1)
${string:position}
ㄴ $string의 $position부터의 문자열 조각을 추출.
ㄴ string의 매개변수가 "*"이거나 "@"라면 position에서 시작하는 위치 매개변수를 추출해냅니다.
방식 2)
${string:position:length}
ㄴ $string의 $position부터 $length만큼의 문자를 추출해 냅니다.
expr substr $string $position $length
ㄴ $stirng의 $position부터 $length만큼 문자를 추출해 냅니다.
expr match "$string" '\($substring\)'
ㄴ $string의 처음에서부터 정규표현식인 $substring을 추출해냅니다.
expr "$string" : '\($substring\)'
ㄴ $string의 처음에서부터 정규 표현식인 $substring을 추출해냅니다.
문자열조각 삭제(Substring Removal)
${string#substring}
ㄴ $string의 앞부분에서부터 가장 짧게 일치하는 $substring을 삭제.
${string##substring}
ㄴ $string의 앞부분에서부터 가장 길게 일치하는 $substring을 삭제.
${string%substring}
ㄴ$string의 뒷 부분에서부터 가장 짧게 일치하는 $substring을 삭제.
${string%%substring}
ㄴ$string의 뒷 부분에서부터 가장 길게 일치하는 $substring을 삭제.
문자열 조각 대치(Substring Replacement)
${string/substring/replacement}
처음 일치하는 $substring을 $replacement로 대치.
${string//substring/replacement}
일치하는 모든 $substring을 $replacement로 대치..
${string/#substring/replacement}
$substring이 $string의 맨 앞에서 일치하면 $replacement로 대치.
${string/%substring/replacement}
$substring이 $string의 맨 뒤에서 일치하면 $replacement로 대치.
'쉘스크립트' 카테고리의 다른 글
11.~ / 내부명령어 (0) | 2022.03.04 |
---|---|
10~ / 루프 (0) | 2022.03.03 |
8~/ 9~/ 연산자, 변수 재검토 (0) | 2022.03.03 |
7~ 테스트 (0) | 2022.03.03 |
6~ / #쿼우팅 (0) | 2022.03.02 |