배쉬 매뉴얼에서
이 형태의 단어는
$'string'
특별히 처리됩니다. 단어는 ANSI C 표준에 지정된 대로 대체된 백슬래시 이스케이프 문자를 사용하여 문자열로 확장됩니다.달러 기호('$') 앞에 큰따옴표가 붙은 문자열을 사용하면 해당 문자열이 현재 로케일에 따라 번역됩니다. 현재 로케일이 C 또는 POSIX인 경우 달러 기호는 무시됩니다. 문자열이 번역되어 바뀌면 대체 내용이 큰따옴표로 묶입니다.
이번 확장팩은 언제 나올지 궁금하네요.
나는 그것들이 파싱 후에 일어날 것이라고 생각합니다. 이것이 맞다면 쉘 확장(예: 중괄호 확장, 매개변수 확장 및 파일 이름 확장) 측면에서 언제 발생합니까?
감사해요.
답변1
$'...'
단순히 특정 문자를 렌더링하는 대체 방법을 제공한다는 점을 제외하면 다른 참조와 동일하게 작동합니다.
이것들은 모두 인쇄됩니다 {foo,bar}
:
echo $'\x7b'foo,bar}
echo "{"foo,bar}
...중괄호 확장을 트리거하고 다음을 인쇄합니다 foo bar
.
echo {foo,bar}
주어진 경우 foo=abc
다음이 인쇄됩니다 $foo
.
echo $'\x24'foo
echo "$"foo
...변수를 확장하고 다음을 인쇄합니다 abc
.
echo $foo
라는 파일이 있으면 abc.txt
다음과 같이 인쇄됩니다 abc.txt
.
echo "a"*.txt
echo $'\x61'*.txt
나는 단지 같은 것이 사실이라고 가정할 수 있다 $".."
.