1. 사용 명령어 |
(1) echo
2. 키워드 & 사용처 |
(1) 키워드
문자열, 큰따옴표, 작은따옴표
(2) 사용처
작은따옴표로 둘러싼 문자열 안에서 변수 확장이나 작은따옴표 기호를 사용하고 싶을 때 사용합니다.
3. 실행 예제 |
$ ./single-quote.sh
It costs $100? I can't believe it!
4. 스크립트 |
#!/bin/sh
price=100
str='It costs $'price'? I can'\''t believe it!' ①
echo $str
5. 해설 |
이 스크립트는 셸 변수 str 내용을 echo 명령어로 표시합니다. 변수 str에 대입할 때 문자열 전체를 작은따옴표로 둘러싸고 있는데 거기에 셸 변수 price 확장이나 작은따옴표 기호 자체를 다루는 예제입니다.
셸 스크립트로 문자열을 다룰 때 큰따옴표와 작은따옴표를 사용합니다. 기본적인 문법이지만 헛갈리기 쉬우므로 기본적인 부분을 다시 확인해 봅니다.
큰따옴표로 둘러싼 문자열은 변수 확장과 명렁어 치환을 하기 때문에 $와 `(그레이브)는 따옴표 안에서도 변수 확장과 명렁어 치환 의미를 그대로 가집니다. 한편, 작은따옴표 기호는 단순한 따옴표로 변수 확장 등을 전혀 하지 않은 채 '(작은따옴표) 이외의 기호를 전부 그대로 출력합니다.
$ echo "My Terminal : $TERM"
My Terminal : xterm
$ echo 'My Terminal : $TERM'
My Terminal : $TERM
그럼 큰따옴표 안에서 큰따옴표를 쓰려면 \ 기호로 큰따옴표를 이스케이프합니다.
str="He said \"Hello!\". I said \"Hello\"."
echo $str
하지만 큰따옴표가 많은 문자열이라면 매번 이스케이프하는 것도 힘듭니다. 그럴 때는 다음처럼 작은따옴표로 처리하면 편리합니다.
str='He said "Hello!". I said "Hello".'
echo $str
그러나 작은따옴표 안에서는 변수 확장이 되지 않습니다. 이 예제는 '큰따옴표가 많이 등장하므로 작은따옴표로 문자열을 다루고 싶지만 변수를 확장하거나 작은따옴표를 쓰고 싶을 때' 사용하면 됩니다.
작은따옴표를 쓰면서 변수를 확장하는 ①에서는 'It costs $'로 우선 작은따옴표를 끊습니다. 그 다음에 $price는 작은따옴표 밖이므로 변수 확장됩니다. 이어서 다시 작은따옴표를 열고 문자열을 연결합니다. 또한, 작은따옴표를 그대로 출력하기 위해 ①에서 '\'' 라고 작성합니다. 이것은 우선 작은따옴표를 닫고 \'로 작은따옴표 기호 자체를 표시한 다음 작은따옴표를 연다는 의미입니다.
이렇게 하면 작은따옴표 안에서도 변수 확장이나 작은다옴표 기호를 다룰 수 있습니다.
참고서적 : 유닉스 리눅스 셸 스크립트 예제 사전
'IT 이야기 > Linux 셸 스크립트' 카테고리의 다른 글
[Linux 셸 스크립트] 변환처리 - 017 문자 속 공백문자를 포함한 문자열 변수를 인수로 쓰기 (0) | 2021.03.05 |
---|---|
[Linux 셸 스크립트] 변환처리 - 016 변수나 함수를 외부 파일로 작성하기 (0) | 2021.03.05 |
[Linux 셸 스크립트] 변환처리 - 014 값이 정수인지 확인해서 계산하기 (4) | 2021.03.05 |
[Linux 셸 스크립트] 변환처리 - 013 HTML 파일에서 특정 속성값 얻기 (0) | 2021.03.05 |
[Linux 셸 스크립트] 변환처리 - 012 지역 변수를 함수 안에 정의해서 호출한 곳의 변수가 변경되지 않게 하기 (0) | 2021.03.05 |
댓글