Поскольку такие интерпретаторы, как zsh, bash, python, perl, могут находиться в разных местах файловой системы, сценарии часто имеют шебанг, который использует env
для переносимости, например #!/usr/bin/env zsh
. Однако, как объясняет http://en.wikipedia.org/wiki/Shebang_(Unix)#Portability , многие системы, включая Linux, не позволяют передавать аргументы интерпретатору.
Часто я хотел бы сделать что-то вроде #!/usr/bin/env zsh -f
чтобы мой скрипт никогда не читал мой ~/.zshenv
, или я хотел бы сделать #!/usr/bin/env perl -w
и т. д. Это работает на OS X, но не на Linux.
Какой обходной путь для этого? Могу ли я получить лучшее из обоих миров: переносимость и аргументы для переводчика? Если возможно, дайте общий обходной путь, который работает для всех переводчиков, а не только для zsh.