1

这个超级用户问题中,我被告知最好通过显式执行解释器并将脚本作为参数提供来执行以解释语言(php、python 等)编写的脚本,例如:

> php script.php

而不是在脚本中添加一行来告诉操作系统执行它,例如:

#!/usr/bin/php
<?php
echo "hello world";
?>

为什么这是真的?我的直觉告诉我,如果脚本被移动到解释器的可执行文件位于不同路径的系统中,它会更安全,但这是唯一的原因吗?

4

2 回答 2

1

如果你使用这个成语,可移植性会得到增强:

#!/usr/bin/env php

但它有其自身的缺点;在http://sites.google.com/site/frankpzh/knowledge-library/shebang上查看更长的讨论

于 2010-07-16T21:07:08.390 回答
0

不同的路径将是主要原因,尤其是当二进制文件开始存储在 x64 表示的路径中或安装在 /usr/local/bin/php 中时。

于 2010-07-16T20:53:41.067 回答