ANSI-C 인용 및 로케일별 번역의 확장은 언제 발생합니까?

ANSI-C 인용 및 로케일별 번역의 확장은 언제 발생합니까?

배쉬 매뉴얼에서

이 형태의 단어는 $'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

나는 단지 같은 것이 사실이라고 가정할 수 있다 $"..".

관련 정보