Загальне використання - це запуск інтерпретаторів, використовуючи той факт, що envбуде шукати $ PATH для команди, яку сказано запустити. Так як притон лінія потрібна абсолютний шлях буде вказана, і так як місце розташування різних перекладачів ( perl, bash, python) може варіюватися багато , він є загальним для використання:
#!/usr/bin/env perl
замість того , щоб намагатися вгадати , чи є це /bin/perl, /usr/bin/perl, /usr/local/bin/perl, /usr/local/pkg/perl, /fileserver/usr/bin/perl, або /home/MrDaniel/usr/bin/perlна комп'ютері користувача ...
З іншого боку, envмайже завжди в /usr/bin/env. (За винятком випадків, коли його немає; деякі системи можуть використовуватись /bin/env, але це досить рідкісний випадок і трапляється лише в системах, що не є Linux.)
Ще одне використання - швидке очищення середовища за допомогою -iпараметра. У застарілих sysvinit initscripts , які є просто скриптами оболонки, часто запущеними безпосередньо системою адміністратора, необхідно переконатися, що середовище адміністратора не поширюється на розпочату демон. (Наприклад, шахрай $TZчи $HOMEможе зробити речі справді заплутаними - особливо це стосується певних демонів cron .)
У цьому випадку initscript готує коротке середовище і запускає демон, використовуючи щось на зразок:
env -i "PATH=/bin:/usr/bin" "LANG=$system_locale" /usr/sbin/crond