작은 따옴표와 백 슬래시


10
~$ echo $'\'test'
'test

man bash 말한다 :

작은 따옴표로 문자를 묶으면 따옴표 안에 각 문자의 리터럴 값이 유지됩니다. 백 슬래시가 앞에 있어도 작은 따옴표 사이에는 작은 따옴표가 없을 수 있습니다.

echo그러면 왜 -command 에서 작동 합니까?

답변:


16

작은 따옴표 '...'는 달러 작은 따옴표와 다릅니다 $'...'. 전자는 백 슬래시를 지원하지 않지만 후자는 ANSI C 사양을 사용합니다.


14

choroba대답은 완전히 정확합니다. 자세한 내용은 man bash다음 과 같습니다.

$ 'string'형식의 단어는 특별히 취급됩니다. 단어가 확장
ANSI C로 지정된대로 백 슬래시 이스케이프 문자가있는 문자열
표준. 백 슬래시 이스케이프 시퀀스가있는 경우 다음과 같이 디코딩됩니다.
              \ a 경고 (종)
              \ b 백 스페이스
              \이자형
              \ E 이스케이프 문자
              \ f 양식 피드
              \ n 줄 바꾸기
              \ r 캐리지 리턴
              수평 탭
              \ v 세로 탭
              백 슬래시
              작은 따옴표
              큰 따옴표
              \? 물음표
              \ nnn 8 진수 값인 8 비트 문자
                     nnn (1 ~ 3 자리 숫자)
              \ xHH 값이 16 진수 인 8 비트 문자
                     HH 값 (1 또는 2 개의 16 진수)
              \ uHHHH 값이 유니 코드 (ISO / IEC 10646) 문자
                     16 진 값 HHHH (1-4 자리 16 진수)
              \ UHHHHHHHHH
                     값이 다음과 같은 유니 코드 (ISO / IEC 10646) 문자
                     16 진 값 HHHHHHHHH (1-8 자리 16 진수)
              \ cx control-x 문자

그 이유입니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.