Обычно используется для запуска интерпретаторов, используя тот факт, что 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 , которые являются просто сценариями оболочки, часто запускаемыми непосредственно системным администратором, необходимо убедиться, что среда администратора не распространяется на запущенный демон. (Например, мошеннические $TZ или $HOME могут привести к путанице, особенно с определенными демонами cron .)
В этом случае initscript готовит короткую среду и запускает демон, используя что-то вроде:
env -i "PATH=/bin:/usr/bin" "LANG=$system_locale" /usr/sbin/crond