반응형
변수의 값을 꺼내기 위해선 $var name 표현을 사용합니다. 하지만 보다 일반적인 ${varname}같이 변수 이름을 중괄호로 둘러싸는 방법이 있습니다.
예 : 10번째 positional parameter?
${10} //ok
$10 //not okay
만약 중괄호를 하지 않으면 변수 뒤에 _를 넣고 싶을 때 _또한 포함해서 읽어주는 것이 발생할 수 있기 때문에 변수를 표현하기 위해선 중괄호를 표현하는 것이 좋습니다.
$echo ${UID}_
문자열 연산자(String Operators)
문자열 연산자를 이용하여 변수의 값을 다양한 방법으로 조작합니다.
예를들면
- 변수가 존재하는지 확인
- 변수의 default값을 설정
- 존재하지 않는 변수를 사용하려는 오류 적절히 처리
- 변수 값의 일부를패턴 매칭을 통해 제거
문자열 연산 규칙
- 변수 이름과 오른쪽 중괄호 사이에 연산자를 삽입
- 연산자가 요구하는 매개변수를 연산자의 오른쪽에 삽입
변수가 존재하고 그 값이 NULL이 아니면 그 값을 그대로 리턴합니다. 그렇지 않을 경우 word를 리턴, 변수값이 정의되지 않은 경우 디폴트 값을 지정하는 용도로 적합합니다. 결과값으로 0이 나옵니다.
20을 지정해주면 이렇게 나오게 됩니다.
${var:=word}
변수의 값이 정의되어 있지 않으면 word에 해당하는 것을 word에 할당하는 것입니다.
정의되지 않았을 때 = 을 통해 지정된 값으로 세팅을 해주는 방식입니다.
${var:?message}
변수가 존재하고 null이 아니면 사용한다는 것이고 정의되지 않았으면 주어진 메세지를 출력하고 현재 스크립트의 수행을 종료하는 것입니다.
${var:+word}
변수 var가 존재하고 null이 아니면 word를 리턴, 그렇지 않으면 null을 리턴, 변수의 존재를 테스트하는데 주로 사용
예) ${count+1}은 count변수가 존재하는 경우 1을 리턴, 그렇지 않으면 null을 리턴
${var:offset:length}
변수 var의 offset 위치에서부터 length 개수 만큼의 서브문자열을 리턴합니다.
반응형
'IT 프로그래밍 > 오픈소스소프트웨어' 카테고리의 다른 글
[오픈소스소프트웨어] 흐름 제어 flow control (0) | 2024.10.07 |
---|---|
[오픈소스소프트웨어] 문자열 연산:Pattern Matching (0) | 2024.10.07 |
[오픈소스소프트웨어]Shell programming (0) | 2024.10.07 |
[오픈소스소프트웨어] chmod 접근 권한 변경 (0) | 2024.10.07 |
[오픈소스소프트웨어] File Security (1) | 2024.09.30 |