O Mac OS X é realmente compatível com o SUS?

1

A Internet diz que o Mac OS X 10.8 obteve certificação para o padrão Open Group UNIX® 03 e que é um sistema compatível .

Mas um teste simples com echo parece indicar o contrário:

a) A especificação básica declara a

  Implementations shall not support any options.

e

  IEEE Std 1003.1-2001/Cor 1-2002, item XCU/TC1/D6/21 is applied, so that the echo utility can accommodate historical BSD behavior.


b) O página man diz afirma

SYNOPSIS
echo [-n] [string ...]

e

STANDARDS
The echo utility conforms to IEEE Std 1003.1-2001 (''POSIX.1'') as amended by Cor. 1-2002.


c) A realidade é que suporta opções. Pelo menos 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?



Então, as perguntas são:
1. Isso quebra a conformidade?
2. O Mac OS X 10.8 é realmente compatível com o SUS?
3. A peça item XCU / TC1 / D6 / 21 é aplicada, para que o utilitário de eco possa acomodar o comportamento histórico do BSD. tem algo a ver? Se sim, onde é esse item explicado? O A Correção Técnica Número 1 para as Especificações do Grupo Austin não diz muito.
4. Estou faltando alguma coisa?

    
por user454322 28.05.2013 / 05:37

1 resposta

6

O OS X 10.8 também é listado como um produto registrado UNIX 03 no link .

Se você estiver usando o bash, ele não é compatível com POSIX por padrão. No entanto, o echo não suporta nenhuma opção por padrão.

$ 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's sh é uma versão do bash com diferenças como:

  • O modo POSIX está ativado
  • xpg_echo está ativado (o echo não suporta nenhuma opção e interpreta sequências de escape)
  • sh -l não lê .bash_profile
  • o padrão do FCEDIT é ed em vez de EDITOR ou ed
por 28.05.2013 / 06:12

Tags