НooпeУ 2012. 12. 6. 17:19

${varname}

: 우리가 알고 있는 $varname 보다 더 일반화된 문법


$10 이면 $1로 인식해서 처리한다.

${10}이면 $10으로 인식해서 처리한다.


${count:-word} : NULL일때 word를 리턴하고, 그렇지 않으면 참조하는 값을 리턴

${count:=word} : count가 정의되어 있지 않을 때, count = word으로 초기화한다.

${count:?message} : count가 정의되어 있지 않을 때, message라는 오류 메시지를 출력하고 종료한다.


${count:+1} : count가 정의되어 있을 때, 1를 리턴한다.

${varname : offset : length} : substring역할을 한다. 즉, offset에서 length까지의 문자열을 리턴한다.

 `

path=/home/cam/book/long.file.name

echo ${path##/*/}            #문자열 시작부분부터 일치하는 가장 긴 패턴을 제외하고 리턴

echo ${path#/*/}                #문자열 시작부분부터 일치하는 가장 작은 패턴을 제외하고 리턴

echo ${path}                        #문자열 리턴

echo ${path%.*}                    #문자열 끝부분부터 일치하는 가장 작은 패턴을 제외하고 리턴

echo ${path%%.*}                #문자열 끝부분부터 일치하는 가장 큰 문자열을 제외하고 리턴


result:

long.file.name

cam/book/long.file.name

/home/cam/book/long.file.name

/home/cam/book/long.file

/home/cam/book/long


 echo -e ${PATH//:/'\n'}

= 콜론이 나타낼마다 \n으로 바꾸는 스크립트

${#varname} 이 연산자는 varname의 변수 값의 길이를 문자열로 돌려주는 역할을 한다.