Да и нет. В среде POSIX утилиты должны вести себя так, как описано в спецификации. На практике это означает, что соответствующие версии утилит должны присутствовать в $PATH
. Однако при запуске вашей программы в POSIX-совместимой системе вы можете запускать ее в несоответствующей среде. На практике часто случается, что ОС имеет устаревший режим и режим POSIX и по умолчанию находится в устаревшем режиме. Хуже, чем отсутствие некоторых команд, унаследованный режим имеет тенденцию к несовместимости, например, варианты с различными значениями.
Вы можете получить товар PATH
с getconf
. Конечно, это сложно, так как getconf
в оригинале $PATH
может быть не тот. Использование приложений для команды показывает способ сделать это:
command -p getconf PATH
Насколько я понимаю спецификацию, в этом нет необходимости, если вы запускаете свою программу в POSIX-совместимой среде; и если вы не запускаете свою программу в POSIX-совместимой среде, POSIX не применяется. Тем не менее, использование этого приложения можно принять за рекомендацию: если это не сработает, вы можете посчитать своим разработчиком право жаловаться на то, что все, что он делает в отношении буквы спецификации POSIX, не соответствует его духу.
getconf PATH
в разделе использования приложения. Спасибо!