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