解释的脚本:隐式执行与显式执行

时间:2010-07-16 20:49:23

标签: interpreted-language

this superuser question中,我被告知最好通过显式执行解释器并将脚本作为参数来执行以解释语言(php,python等)编写的脚本,例如:

> php script.php

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

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

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

2 个答案:

答案 0 :(得分:1)

如果您使用此惯用语,则可移植性得到增强:

#!/usr/bin/env php

但它有自己的缺点;在http://sites.google.com/site/frankpzh/knowledge-library/shebang

上查看更长时间的讨论

答案 1 :(得分:0)

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

相关问题