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

发布于 2024-09-10 09:35:34 字数 391 浏览 3 评论 0原文

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

> php script.php

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

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

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

In this superuser question I was advised that it is better to execute scripts written in an interpretted language (php, python, etc) by explicitly executing the interpretter and providing the script as an argument, like:

> php script.php

rather than adding a line to the script to tell the OS to execute it, like:

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

Why is this true? My intuition tells me that it's safer, in case the script is moved to a system in which the interpreter's executable is located at a different path, but is that the only reason?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

南城追梦 2024-09-17 09:35:34

如果使用这个习惯用法,可移植性会得到增强:

#!/usr/bin/env php

但它也有自己的缺点;如需查看更长的讨论,请访问 http://sites.google.com/site/frankpzh /知识库/shebang

Portability is enhanced if you use this idiom:

#!/usr/bin/env php

but it has drawbacks of its own; see a longer discussion at http://sites.google.com/site/frankpzh/knowledge-library/shebang

樱&纷飞 2024-09-17 09:35:34

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

Different paths would be the primary reason, especially when binaries start getting stored in x64-denoted paths or installed in /usr/local/bin/php.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文