2014-02-12 17 views
12

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

错误消息:

-bash: script.php: command not found 

测试脚本:

#!/bin/env php  
<?php echo "test"; ?> 

家当#!变化:

#!/usr/bin/php 
#!/usr/bin/env php 
+1

很明显 - 这就是为什么他问:) – Banago

+0

@JoelFan PHP文档似乎不赞同你:http://www.php.net/manual/en/features.commandline.usage.php#example-375 –

+1

@JoelFan - 人们可以自由地在博客上表达他们愚蠢的想法,但不要在我们帮助其他开发人员的网站上这样做。谢谢。要回答有关错误的问题 - 很可能是因为您的第一行后面出现了CR \ LF组合。使用十六进制编辑器检查您是否有\ n \ r,如果是,请删除回车符。 CHMOD + x yourfile.php也可以执行它。 –

回答

25

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

-bash: script.php: command not found 

它说,的script.php没有找到。

如果问题是家当线,则错误会这样说:

bash: script.php: /usr/env: bad interpreter: No such file or directory 

想必,你输入script.php和文件不在目录上您$PATH或不可执行。

  1. 使其可执行:chmod +x script.php
  2. 输入它的路径而不是文件名,如果它位于当前目录,则:./script.php

而不是2,您可以将文件移动/复制/符号链接到$PATHmodify the $PATH中列出的某处,以包含包含该脚本的目录。

+1

还要确保你在脚本中有Unix行尾,而不是DOS。 DOS行结尾会给你一个类似的错误。 –

10

如果脚本不位于您/usr/local/bin且可执行,你必须前缀调用你的脚本php这样的:

php myscrip.php 

对于shebangs,这里是我使用:

像这样:

#!/usr/bin/php 

或本:

#!/usr/bin/env php