Sim e não. Em um ambiente POSIX, os utilitários devem se comportar conforme descrito pela especificação. Na prática, isso significa que versões em conformidade dos utilitários devem estar presentes em $PATH
. No entanto, ao executar seu programa em um sistema compatível com POSIX, você pode executá-lo em um ambiente que não esteja em conformidade. Na prática, o que acontece frequentemente é que o sistema operacional tem um modo legado e um modo POSIX, e está no modo legado por padrão. Pior do que perder alguns comandos, o modo legado tende a ter incompatibilidades neles, como opções com significados diferentes.
Você pode recuperar um bom PATH
com getconf
. Claro, é complicado, pois getconf
no original $PATH
pode não ser o correto. O uso do aplicativo para o comando mostra uma maneira de fazer isso:
command -p getconf PATH
Tanto quanto eu entendi a especificação, isso não é necessário se você estiver executando o programa em um ambiente em conformidade com POSIX; e se você não estiver executando seu programa em um ambiente em conformidade com POSIX, o POSIX não se aplica. No entanto, esse uso do aplicativo pode ser tomado como uma recomendação: se isso não funcionar, você pode se sentir no direito de reclamar com o fornecedor que, independentemente do que esteja fazendo em relação à letra da especificação POSIX, eles não estão cumprindo seu espírito. / p>