답변:
작은 따옴표로 이스케이프 할 수 없습니다. 작은 따옴표에 작은 따옴표를 포함시키는 방법은 없습니다. man bash 인용 을 참조하십시오 .
echo '\''
echo $'\'hello world\''
이스케이프 된 아포스트로피에서 발생하는 상황을 설명하기 위해 두 번째 예를 살펴 보겠습니다 ( 작은 따옴표 또는 강한 따옴표 참조 ).
$ echo '\'Hello World\''
> # expects you to continue input
여기에서 언급 한대로 견적을 남겼습니다. 이제 끝을 자르고 다음으로 변경하십시오.
v v v
$ echo '\'Hello World # Echo two strings: '\' and 'Hello World'.
\Hello World ^
은 "Hello World」의 하위 문자열을 여기에 인용하지만 행동하지 않은 것처럼 이 강한 인용되었다. 예제를 다시 사용하여 이번에는 끝을 다르게 다듬습니다.
vv v (plain apostrophe)
$ echo '\'Hello World\' # Will echo: '\' and 'Hello World''
\Hello World' ^^ # Note that the trailing ' char is backslash escaped.
"Hello World"하위 문자열은 끝 부분에 추가 된 아포스트로피 (이스케이프 처리되었으므로 더 이상 작은 따옴표가 아님)와 함께 강력한 따옴표처럼 다시 작동합니다.
다른 작은 따옴표가 끝에 추가되면 (원래 예제) 문자열은 교수형 상태로 유지되고 인용을 기다립니다.
쉘에서 따옴표를 이스케이프 처리하는 간단한 예 :
$ echo 'abc'\''abc'
abc'abc
$ echo "abc"\""abc"
abc"abc
이미 열린 하나를 닫고 ( '
) 이스케이프 된 하나를 배치 \'
하여 인쇄 한 다음 다른 하나를 열면 ('
).
또는
$ echo 'abc'"'"'abc'
abc'abc
$ echo "abc"'"'"abc"
abc"abc
이미 열린 하나 ( '
) 를 마무리 하고 다른 따옴표 ( "'"
)에 따옴표 를 넣은 다음 다른 따옴표 ( )를 열면 '
됩니다.
당신이 한 일은 '\'Hello World\''
:
'
.\'
므로 문자열은 다음과 같습니다 '\'
.Hello World
따옴표가 아닙니다.\'
)를 열지 않고 배치 했습니다.'
)가 문자열을 여는 중이지만 닫는 문자열이 없습니다.올바른 예는 다음과 같습니다.
$ echo \'Hello World\'
'Hello World'
echo \''Hello World'\'