${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%%.*} #문자열 끝부분부터 일치하는 가장 큰 문자열을 제외하고 리턴
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'}