Unix / Linux-쉘 인용 메커니즘
이 장에서는 쉘 인용 메커니즘에 대해 자세히 설명합니다. 메타 문자에 대해 논의하는 것으로 시작하겠습니다.
메타 문자
Unix Shell은 모든 Shell Script에서 사용하는 동안 특별한 의미를 갖는 다양한 메타 문자를 제공하며 인용되지 않는 한 단어를 종료합니다.
예를 들면 ? 디렉토리에 파일을 나열하는 동안 단일 문자와 일치하고 *둘 이상의 문자와 일치합니다. 다음은 대부분의 쉘 특수 문자 (메타 문자라고도 함) 목록입니다.
* ? [ ] ' " \ $ ; & ( ) | ^ < > new-line space tab
문자는 앞에 a를 붙여서 인용 할 수 있습니다. \.
예
다음 예는 인쇄 방법을 보여줍니다. * 또는 ? −
#!/bin/sh
echo Hello; Word
실행하면 다음과 같은 결과를 받게됩니다.
Hello
./test.sh: line 2: Word: command not found
shell returned 127
이제 인용 문자를 사용해 보겠습니다.
#!/bin/sh
echo Hello\; Word
실행하면 다음과 같은 결과를 받게됩니다.
Hello; Word
그만큼 $ sign은 메타 문자 중 하나이므로 쉘에 의한 특별한 처리를 피하기 위해 인용되어야합니다.
#!/bin/sh
echo "I have \$1200"
실행하면 다음과 같은 결과를 받게됩니다.
I have $1200
다음 표는 인용의 네 가지 형태를 나열합니다.
Sr. 아니. | 인용 및 설명 |
---|---|
1 | Single quote 이 따옴표 사이의 모든 특수 문자는 특별한 의미를 잃습니다. |
2 | Double quote 이 따옴표 사이의 대부분의 특수 문자는 이러한 예외를 제외하고는 특별한 의미를 잃습니다.
|
삼 | Backslash 백 슬래시 바로 뒤에 오는 문자는 특별한 의미를 잃습니다. |
4 | Back quote 역 따옴표 사이의 모든 것은 명령으로 처리되고 실행됩니다. |
작은 따옴표
많은 특수 쉘 문자를 포함하는 echo 명령을 고려하십시오.
echo <-$1500.**>; (update?) [y|n]
각 특수 문자 앞에 백 슬래시를 두는 것은 지루하고 행을 읽기 어렵게 만듭니다.
echo \<-\$1500.\*\*\>\; \(update\?\) \[y\|n\]
많은 문자 그룹을 쉽게 인용 할 수있는 방법이 있습니다. 문자열의 시작과 끝에 작은 따옴표 ( ')를 넣으십시오.
echo '<-$1500.**>; (update?) [y|n]'
작은 따옴표 안의 문자는 각 문자 앞에 백 슬래시가있는 것처럼 인용됩니다. 이를 통해 echo 명령이 적절한 방식으로 표시됩니다.
출력 할 문자열 내에 작은 따옴표가 나타나면 전체 문자열을 작은 따옴표 안에 넣으면 안됩니다. 대신 다음과 같이 백 슬래시 (\)를 사용하여 문자열 앞에 와야합니다.
echo 'It\'s Shell Programming
큰 따옴표
다음 쉘 스크립트를 실행 해보십시오. 이 쉘 스크립트는 작은 따옴표를 사용합니다-
VAR=ZARA
echo '$VAR owes <-$1500.**>; [ as of (`date +%m/%d`) ]'
실행하면 다음과 같은 결과를 받게됩니다.
$VAR owes <-$1500.**>; [ as of (`date +%m/%d`) ]
이것은 표시되어야하는 것이 아닙니다. 작은 따옴표가 변수 대체를 방지한다는 것은 분명합니다. 변수 값을 대체하고 반전 된 쉼표가 예상대로 작동하도록하려면 다음과 같이 명령을 큰 따옴표로 묶어야합니다.
VAR=ZARA
echo "$VAR owes <-\$1500.**>; [ as of (`date +%m/%d`) ]"
실행하면 다음과 같은 결과를 받게됩니다.
ZARA owes <-$1500.**>; [ as of (07/02) ]
큰 따옴표는 다음을 제외한 모든 문자의 특별한 의미를 제거합니다.
$ 매개 변수 대체 용
명령 대체를위한 역 따옴표
\$ 문자 그대로 달러 기호를 사용하려면
\` 리터럴 역 따옴표를 사용하려면
\" 포함 된 큰 따옴표를 사용하려면
\\ 포함 된 백 슬래시를 사용하려면
그 외 모든 것들 \ 문자는 리터럴 (특별하지 않음)
작은 따옴표 안의 문자는 각 문자 앞에 백 슬래시가있는 것처럼 인용됩니다. 이렇게하면 echo 명령이 제대로 표시됩니다.
출력 할 문자열 내에 작은 따옴표가 나타나면 전체 문자열을 작은 따옴표 안에 넣으면 안됩니다. 대신 다음과 같이 백 슬래시 (\)를 사용하여 문자열 앞에 와야합니다.
echo 'It\'s Shell Programming'
역 따옴표
셸 명령을 중간에 넣기 backquotes 명령을 실행합니다.
통사론
다음은 쉘을 넣는 간단한 구문입니다. command 역 따옴표 사이-
var=`command`
예
그만큼 date 다음 예에서는 명령을 수행하고 생성 된 결과를 DATA 변수에 저장합니다.
DATE=`date`
echo "Current Date: $DATE"
실행하면 다음과 같은 결과를 받게됩니다.
Current Date: Thu Jul 2 05:28:45 MST 2009