Sim e não. Em um ambiente POSIX, os utilitários devem se comportar conforme descrito na especificação. Na prática, isso significa que versões conformes dos utilitários devem estar presentes no $PATH
. No entanto, ao executar seu programa em um sistema compatível com POSIX, você pode executá-lo em um ambiente não conforme. Na prática, o que geralmente acontece é que o sistema operacional possui um modo herdado e um modo POSIX, e está no modo herdado por padrão. Pior do que perder alguns comandos, o modo legado tende a ter incompatibilidades, como opções com significados diferentes.
Você pode recuperar um bem PATH
com getconf
. Claro, é complicado, pois getconf
no original $PATH
pode não ser o caminho certo. O uso do aplicativo para o comando mostra uma maneira de fazer isso:
command -p getconf PATH
Tanto quanto eu entendo a especificação, isso não é necessário se você estiver executando seu programa em um ambiente em conformidade com POSIX; e se você não estiver executando seu programa em um ambiente compatível com POSIX, o POSIX não se aplicará. No entanto, esse uso do aplicativo pode ser tomado como uma recomendação: se isso não funcionar, você poderá reclamar ao seu fornecedor que, seja o que for que eles estejam fazendo em relação à letra da especificação POSIX, eles não estão de acordo com seu espírito.
getconf PATH
na seção de uso do aplicativo. Obrigado!