여기 문서 태그의 유효한 문자

여기 문서 태그의 유효한 문자

여기서 문서 태그에 유효한 문자는 무엇입니까?

cat << 'what_characters_can_be_used_here'

what_characters_can_be_used_here

나는 예상치 못한 문자열을 원하기 때문에 묻습니다. 따라서 문자열에 홀수 문자를 포함하고 싶습니다. 나는 bash를 사용하고 bash의 특정 기능을 사용할 수 있지만 일반적인 POSIX 제한 사항을 아는 것도 흥미로울 것입니다. 구분 기호 문자열의 최대 안전 길이를 아는 것도 흥미로울 것입니다.

답변1

개행 문자를 제외하고 비어 있지 않은 문자 시퀀스를 구분 기호로 사용할 수 있습니다.POSIX제한사항은 명시되지 않았습니다. 당신은 할 수지정하다구분 기호에 개행 문자가 있지만 찾을 수 없습니다. 많은 쉘은 널 구분 기호를 지원하지만 ATT ksh는 지원하지 않습니다. 실제로 대부분의 쉘은 null과 newline을 제외한 모든 바이트 시퀀스를 허용하지만 유효하지 않은 바이트 시퀀스는 사용하지 않는 것이 좋습니다. 또한 스크립트를 편집하거나 다른 컴퓨터로 전송할 때 이러한 문자가 다시 인코딩될 수 있으므로 캐리지 리턴을 사용하지 않는 것이 좋습니다. 후행 공백은 편집 중에 실수로 제거될 가능성도 있습니다. 인쇄 가능한 ASCII를 사용하는 것이 더 안전합니다.

물론 구분 기호에 셸 구문에서 특별한 의미를 갖는 문자가 포함되어 있는 경우 <<연산자 뒤에 이를 인용해야 하며 변수 및 명령으로 here-document를 대체하는 대신 리터럴 here-document만 사용할 수 있습니다.

답변2

~에 따르면POSIX 사양, 이것Heredocs 섹션heredoc "태그"를 다음과 같이 정의하세요.단어. 이로 인해 쉘이 유효한 것으로 정의한 것은 무엇이든 믿게 됩니다.단어이는 허용됩니다.

최대 단어 길이는 스크립트를 실행하는 셸에 따라 다를 것이라고 확신합니다. 하지만 터무니없이 긴 문자열을 사용하지 않고도 길이에 대한 엄격한 제한에 도달할지는 의심스럽습니다.

관련 정보