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.
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
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.