Da sich Interpreter wie zsh, bash, python und perl möglicherweise an verschiedenen Stellen im Dateisystem befinden, haben Skripte häufig einen Shebang, der envfür die Portabilität verwendet wird, z #!/usr/bin/env zsh. Wie http://en.wikipedia.org/wiki/Shebang_(Unix)#Portability erklärt, erlauben viele Systeme, einschließlich Linux, die Weitergabe von Argumenten an den Interpreter nicht.
Oft möchte ich etwas tun #!/usr/bin/env zsh -f, um zu verhindern, dass mein Skript jemals mein Skript liest ~/.zshenv, oder ich möchte dies tun #!/usr/bin/env perl -wusw. Dies funktioniert unter OS X, aber nicht unter Linux.
Was ist die Problemumgehung dafür? Kann ich das Beste aus beiden Welten haben: Portabilität und Argumente für den Dolmetscher? Geben Sie nach Möglichkeit eine allgemeine Problemumgehung an, die für alle Dolmetscher funktioniert, nicht nur für zsh.
[ "x$ZSH_VERSION" = "x" ] && exec zsh -f "$0" "$@"