2014-02-12 51 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