Existe um shell POSIX mínimo para o OS X?

1

Existe uma implementação de shell POSIX mínima para o OS X? Eu gosto de escrever scripts de shell razoavelmente portáveis e quero pegar tantas incompatibilidades ou bashisms na frente quanto eu puder. Não pretendo substituir o sistema /bin/sh .

/bin/sh no OS X 10.11.4 é o GNU bash 3.2.57 ou baseado nele.

$ /bin/sh --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin15)
Copyright (C) 2007 Free Software Foundation, Inc.

Esta é a mesma string de versão que /bin/bash informa, mesmo que os dois arquivos sejam diferentes. Por que isso é assim?

$ diff /bin/sh /bin/bash
Binary files /bin/sh and /bin/bash differ

De qualquer forma, o modo de compatibilidade POSIX bash ainda faz algumas coisas que não são exigidas pelo padrão (e não são de fato universais como local ), por exemplo esta forma de expansão de chave.

$ echo {1..10}
1 2 3 4 5 6 7 8 9 10
    
por Gregory Nisbet 08.05.2016 / 00:44

1 resposta

3

O MacPorts tem dash , que é o que o Debian usa. Para essa e outras escolhas, leia Existe um POSIX minimamente. 2 shell compatível? , em que as respostas apontam que o padrão é vago em alguns lugares.

    
por 08.05.2016 / 00:56

Tags