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