`` 명령 대체 사용

`` 명령 대체 사용

이것은 에서 발췌한 것입니다.배쉬 매뉴얼:

이전 스타일의 역따옴표 대체 형식을 사용하는 경우 백슬래시는 뒤에 $, `또는 가 오지 않는 한 문자 그대로의 의미를 유지합니다.\

그러나 백틱은 다음 명령의 출력에서 ​​제안하는 것과 동일한 방식으로 $and 를 처리합니다.\$

Command        Output
echo '$PWD'    $PWD
echo '\$PWD'   \$PWD

답변1

나는 또한 stackexchange와 Linux를 처음 접했습니다. 미리 감사드립니다.

양측 모두 환영합니다!

귀하의 예에는 백틱이 없으며 작은 따옴표입니다. ''백틱은 다음과 같습니다.``

또한, 나는 당신에게 간단하게 제안합니다사용하지 마세요(백틱입니다)! 명령 대체에는 다음 구문을 사용하는 것이 가장 좋습니다.$(<command>)

왜 그런지 찾아라여기.

즐거운 해킹되세요!

답변2

나는 오해가 있다고 생각합니다. bash 매뉴얼 작성자가 리터럴 값으로 의미하는 것은 일반 사용자인 우리가 이해할 수 있는 것과 다릅니다. 또한 두 가지가 작용합니다. 첫째, 백틱은 명령 대체에 사용되며, 둘째는 "백슬래시의 문자 그대로의 의미"입니다. 마지막 것부터 시작해 보겠습니다.

Bash 매뉴얼의 QUOTING 섹션을 인용하면 다음과 같습니다.

A  non-quoted backslash (\) is the escape character.
It preserves the literal value of the next character that
follows, with the exception of <newline>. 

무엇인가요아니요저자가 실제 백슬래시, 즉 텍스트에 대해 이야기하고 있음이 분명합니다. 단일 백슬래시 자체는 이스케이프 문자를 나타내지만 제공한 링크에서는 이중 백슬래시에 대해 설명합니다. 확인 해봐:

bash-4.3$ var=`echo \ `
bash-4.3$ echo $var

bash-4.3$ var=`echo \\ `
bash-4.3$ echo $var

bash-4.3$ var=`echo \\$ `
bash-4.3$ echo $var
$
bash-4.3$ var=`echo \\\ `
bash-4.3$ echo $var
\

이해하기 어렵지만 이렇게 생각해보세요. 먼저 이스케이프 문자를 이스케이프 처리해야 합니다.

관련 정보