如何添加shebang#!在Linux上使用php脚本?

use*_*603 24 php linux shebang

我在添加shebang#时遇到了一些问题!在RedHat linux上使用我的PHP脚本.我添加了shebang的一小段测试代码(我也尝试了不同的变体),但每次尝试运行脚本时都会收到以下错误消息.

错误消息:

-bash: script.php: command not found
Run Code Online (Sandbox Code Playgroud)

测试脚本:

#!/bin/env php    
<?php echo "test"; ?>
Run Code Online (Sandbox Code Playgroud)

Shebang#!变化:

#!/usr/bin/php
#!/usr/bin/env php
Run Code Online (Sandbox Code Playgroud)

Que*_*tin 37

它应该(对于大多数系统而言)#!/usr/bin/env php,但是你的错误与此无关.

-bash: script.php: command not found
Run Code Online (Sandbox Code Playgroud)

它说找不到script.php.

如果问题是shebang线,那么错误会说:

bash: script.php: /usr/env: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)

据推测,您正在键入script.php并且该文件不在您的目录中$PATH或不可执行.

  1. 让它可执行:chmod +x script.php.
  2. 键入它的路径而不仅仅是文件名,如果它在当前目录中,则:./script.php.

您可以将文件移动/复制/符号链接到列出的某个位置,$PATH或者修改$PATH包含包含脚本的目录,而不是2 .


Ban*_*ago 13

如果脚本不在您的脚本中/usr/local/bin并且是可执行文件,则必须使用如下前缀调用脚本php:

php myscrip.php
Run Code Online (Sandbox Code Playgroud)

对于shebangs,这是我使用的:

像这样:

#!/usr/bin/php
Run Code Online (Sandbox Code Playgroud)

或这个:

#!/usr/bin/env php
Run Code Online (Sandbox Code Playgroud)

  • `#!/usr/bin/env php` 是首选,因为它让系统显示可执行文件的安装位置 (3认同)

Ric*_*ing 5

在回复 @NVRM 关于仅使用一次的评论时-d,这是不正确的。

chmod +x script以as开头

#!/usr/bin/php
<?php
phpinfo();
Run Code Online (Sandbox Code Playgroud)

然后运行script | grep -E 'memory_limit|error_reporting',你会看到

error_reporting => no value => no value
memory_limit => 128M => 128M
Run Code Online (Sandbox Code Playgroud)

现在添加一些-d条目,这样你就有了

#!/usr/bin/php
<?php
phpinfo();
Run Code Online (Sandbox Code Playgroud)

并重新运行script | grep -E 'memory_limit|error_reporting',你现在会看到

error_reporting => -1 => -1
memory_limit => 2G => 2G
Run Code Online (Sandbox Code Playgroud)

从而证明您可以设置多个选项。

事实上,整个命令行就是您在这里使用的。因此,您可以加载扩展、使用不同的配置等,您可以在命令行执行所有操作。