728x90

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로 대치.

 

728x90

'쉘스크립트' 카테고리의 다른 글

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

+ Recent posts