因为诸如 zsh、bash、python、perl 之类的解释器可能位于文件系统上的不同位置,所以脚本通常有一个env用于可移植性的 shebang ,例如#!/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。