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