인터넷에서는 Mac OS X 10.8이라고 나와 있습니다.Open Group UNIX® 03 표준 인증그리고 그것호환되는 시스템입니다.
그러나 간단한 테스트를 echo
보면 그렇지 않은 것으로 보입니다.
ㅏ) 기본사양상태
구현하다안 하는 게 낫다모든 옵션이 지원됩니다.
그리고
echo 유틸리티가 과거 BSD 동작에 적응하도록 IEEE Std 1003.1-2001/Cor 1-2002, 항목 XCU/TC1/D6/21을 적용합니다.
요약
에코 [-n] [문자열...]
그리고
기준
echo 유틸리티는 Cor가 개정한 IEEE Std 1003.1-2001(``POSIX.1'')을 준수합니다. 1-2002.
씨)현실은 옵션을 지원한다는 것입니다. 적어도e
(user@avitus tmp)$ uname -a
Darwin avitus.local 12.3.0 Darwin Kernel Version 12.3.0: Sun Jan 6 22:37:10 PST 2013; root:xnu-2050.22.13~1/RELEASE_X86_64 x86_64
(user@avitus tmp)$ echo -e "test \tAm I SUS compliant?"
test Am I SUS compliant?
(user@avitus tmp)$ echo "test \tAm I SUS compliant?"
test \tAm I SUS compliant?
따라서 질문은 다음과 같습니다.
1. 이는 규정 위반입니까?
2. Mac OS X 10.8은 실제로 SUS 표준을 준수합니까?
3. 부분적인 부분이 있나요? echo 유틸리티가 과거 BSD 동작에 적응하도록 XCU/TC1/D6/21을 적용합니다. 할 일이 있나요? 그렇다면, 프로젝트에 대한 설명은 어디에 있나요? 이것
Austin Group 사양에 대한 기술 정오표 1번 할 말이 많지 않습니다.
4. 제가 뭔가 놓친 게 있나요?
답변1
OS X 10.8도 UNIX 03 등록 제품으로 나열되어 있습니다.http://www.opengroup.org/openbrand/register/.
bash를 사용하는 경우 기본적으로 POSIX와 호환되지 않습니다. 그러나 기본적으로 echo는 sh의 어떤 옵션도 지원하지 않습니다.
$ bash
$ builtin echo -e a; /bin/echo -e a
a
-e a
$ sh
$ builtin echo -e a; /bin/echo -e a
-e a
-e a
$ shopt -u xpg_echo
$ builtin echo -e a; /bin/echo -e a
a
-e a
OS X의 sh는 bash 버전입니다.차이점은 다음과 같습니다.
- POSIX 모드활성화됨
- xpg_echo가 활성화되었습니다(echo는 어떤 옵션도 지원하지 않으며 이스케이프 시퀀스를 해석합니다).
- sh -l이 .bash_profile을 읽지 않습니다.
- FCEDIT의 기본값은 EDITOR 또는 ed 대신 ed입니다.