${변수명:-문자열}
${변수명-문자열}
변수가 있고 변수값이 null 이 아니면 변수값을 돌려주고, 아니면 문자열을 돌려준다.
${cnt:-0}는 cnt라는 변수값이 있고 null이 아니면 이것을 돌려주고 아니면 0을 돌려준다. 그러나 변수값이 0으로 할당되진 않는다.
${cnt-0}는 cnt라는 변수값이 있으면 이것을 돌려주고 아니면 0을 돌려준다. 그러나 변수값이 0으로 할당되진 않는다.
콜론이 있고 없고의 차이는 변수값이 null 인 경우도 인정하느냐 안하느냐의 차이이다. 콜론이 있으면 null 값은 반환되지 않는다. 아래의 경우도 전부 마찬가지이다.
${변수명:=문자열}
${변수명=문자열}
변수가 있고 변수값이 null 이 아니면 변수값을 돌려주고, 아니면 문자열 변수값으로 할당하고 이 값을 돌려준다
${cnt:=0}는 cnt라는 변수값이 있으면 이것을 돌려주고 아니면 0을 돌려준다. 변수값은 0으로 할당된다.
${변수명:+문자열}
${변수명+문자열}
변수가 있고 변수값이 null 이 아니면 문자열을 돌려주고, 아니면 null을 돌려준다
${cnt:+1}는 cnt라는 변수값이 있으면 1을 돌려주고 아니면 null을 돌려준다.
${변수명:?문자열}
${변수명?문자열}
변수가 있고 변수값이 null 이 아니면 변수값을 돌려주고, 아니면 변수명과 문자열을 돌려준다.
${cnt:?"undefined!!"}는 변수가 정의되지 않았다면 cnt: undefined!! 라는 문장을 출력한다.
${변수명:offset}
${변수명:offset:length}
변수값에서 offset부터 끝까지의 문자열을 출력하거나 offset부터 length만큼의 문자열을 출력한다.
만약 cnt가 abcdefgh 라면
${cnt:4} 는 efgh를 출력하고
${cnt:4:2} 는 ef를 출력한다.
${#변수명}
변수값의 길이
${변수명#문자열}
변수의 제일 앞에서부터 짧게 일치한 문자열 삭제. 제일 앞이 반드시 일치해야 함
${변수명##문자열}
변수의 제일 앞에서부터 길게 일치한 문자열 삭제. 제일 앞이 반드시 일치해야 함
${변수명%문자열}
변수의 제일 뒤에서부터 짧게 일치한 문자열 삭제. 제일 뒤가 반드시 일치해야 함
${변수명%%문자열}
변수의 제일 뒤에서부터 길게 일치한 문자열 삭제. 제일 뒤가 반드시 일치해야 함
${변수명/찾는문자열/변경문자열}
처음 일치하는 문자열을 변경함
${변수명//찾는문자열/변경문자열}
일치하는 문자열을 모두 변경함
${변수명/#찾는문자열/변경문자열}
앞부분이 일치하면 변경
${변수명/%찾는문자열/변경문자열}
뒷부분이 일치하면 변경
${!변수명*}, ${!변수명@}
변수중에서 '변수명'이란 글자로 시작하는 모든 변수명 나열
'Ubuntu, Bash' 카테고리의 다른 글
서비스 확인 및 재시작 (0) | 2020.01.05 |
---|---|
ufw 기본적인 사항 (0) | 2020.01.05 |
shell script의 명령 인자 숫자 및 배열 (0) | 2019.12.25 |
WSL Bash에서 notepad++.exe 실행하기 (0) | 2019.12.25 |
Windows 10에 우분투 설치하기 (0) | 2019.12.24 |