在this superuser question中,我被告知最好通过显式执行解释器并将脚本作为参数来执行以解释语言(php,python等)编写的脚本,例如:
> php script.php
而不是在脚本中添加一行来告诉操作系统执行它,例如:
#!/usr/bin/php
<?php
echo "hello world";
?>
为什么这是真的?我的直觉告诉我,如果将脚本移动到解释器的可执行文件位于不同路径的系统,它会更安全,但这是唯一的原因吗?
答案 0 :(得分:1)
如果您使用此惯用语,则可移植性得到增强:
#!/usr/bin/env php
但它有自己的缺点;在http://sites.google.com/site/frankpzh/knowledge-library/shebang
上查看更长时间的讨论答案 1 :(得分:0)
不同的路径是主要原因,特别是当二进制文件开始存储在x64表示的路径中或安装在/ usr / local / bin / php中时。