이 POSIX echo \c는 무엇입니까?

이 POSIX echo \c는 무엇입니까?

간단한 사실을 검색하던 중 echo다음 페이지를 발견했습니다.

https://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html

일반적으로 웹사이트의 HTML 프레임입니다.https://pubs.opengroup.org/onlinepubs/9699919799/(여기서 "echo"를 검색할 수 있습니다).

이것은 POSIX라고 주장하지만 나는 그것을 보지 못하고 -n본다 \c!

내가 무엇을 찾았나요?

정상적인 재시작지적/bin/echo인식 하지만 기본적으로는 그렇게 하지 않습니다. 인식 되려면 \c뭔가를 해야 합니다 .echo -e\c

답변1

IEEE 1003.1-2017(일명)을 찾았습니다.단일 유닉스 사양, The Open Group에서 출판.

자세한 내용은 "POSIX란 정확히 무엇입니까?","POSIX, 단일 UNIX 사양 및 개방형 그룹 기본 사양의 차이점은 무엇입니까?” 및 관련된 모든 질문과 답변을 제공합니다.

바로 -n거기에 굵게 표시되어 있어서 놓치기 어렵습니다. 예, \c이는 표준입니다.

행동의 변화는 echo잘 알려져 있습니다. 이것이 /bin/echo쉘 내장과 다르며 echo하나는 필수이고 -e다른 하나는 그렇지 않다는 사실에 놀라지 마십시오 . 심지어저것단순한.

자세한 안내는 "를 참조하세요.왜 printf가 echo보다 나은가요?".

printf아이러니하게도 정확히 동일한 이스케이프 시퀀스를 포함하는 잘 알려지지 않은 가변성에 대해서는 \c"Bash printf 형식이 작동하지 않습니다.".

답변2

이는 UNIX 브랜드 POSIX 인증 플랫폼을 사용하는 경우 기본적으로 echo처리됩니다 .\c

이는 Solaris, AIX, HP-UX 및 Apple에 적용됩니다.

Apple은 bash이 에코 동작도 지원하지만 bash기본적으로 호환되도록 하려면 특정 컴파일 옵션이 필요합니다. 이 컴파일 옵션은 bashMacOS 및 Solaris에서 사용됩니다. 따라서 bash사람들은 POSIX 인증 플랫폼에서 동작이 다르다는 사실을 깨닫고 혼란스러워할 수 있습니다.

기억하세요: GNUGNU는 UNIX가 아닙니다. 많은 GNU 도구는 POSIX와 호환되지 않거나 기본적으로 POSIX와 호환되지 않습니다. 따라서 인증된 플랫폼이 아닐 때는 주의하세요.

참고: 지원하지 않더라도 소규모 임베디드 플랫폼에 대한 POSIX 브랜딩을 얻을 수 있지만 브랜딩 echo \c의 경우 UNIX지원해야 합니다.모두 XSIPOSIX 확장. Linux는 대부분의 확장을 지원하지 않습니다 XSI. 예를 들어 많은 Linux 배포판에서 사용되는 dash기본 셸은 dash멀티바이트 문자를 지원하지 않기 때문에 id와 완전히 호환되지 않습니다.

관련 정보