2014-02-07 31 views
0

這是一個非常簡單的...我只想在沒有前面的perl命令的情況下創建一個perl腳本可執行文件,而是讓環境從shebang行中推導出解釋器。這是我叫test示例腳本:使perl腳本可執行文件...我可以不使用前面的'perl'語句嗎?

#!/usr/bin/perl 
print "Hey there\n"; 

然後我用chmod 775 test使腳本可執行文件。如果我使用命令perl test,則得到輸出Hey there

但是,如果我只輸入test,我就沒有輸出。這是怎麼回事?爲什麼不是我的shebang系列讓環境意識到這是perl?有人可以幫幫我嗎?

+2

嘗試'。/ test'或將腳本放在路徑的某處。 –

+3

嘗試重命名您的腳本。 'test'是大多數shell中的內置命令。 – Barmar

+0

看到SO問題[爲什麼你需要./(點斜槓)在腳本名稱之前運行它在bash?](http://stackoverflow.com/questions/6331075/why-do-you-need-dot-slash -before-script-name-to-run-it-in-bash) – ThisSuitIsBlackNot

回答

6

不要命名您的腳本test。這是大多數shell中的內置命令,所以它們不會去尋找外部程序。

此外,要在當前目錄中運行程序,您應該輸入./programname。在您的$PATH中存在.通常是一個糟糕的主意,在沒有目錄前綴的情況下執行它是非常必要的。

0

運行需要從你的前綴當前目錄下的東西「./」,告訴它‘此目錄’,即./testprogram

如果您只鍵入test它將在標準安裝目錄(如/ bin)中查找。這就是爲什麼當你運行cprm它知道可執行文件的位置。

正如其他人所說,大多數shell不允許命名腳本test

+4

在'test'的特定情況下,大多數shell不會在任何地方看到,因爲它們將它作爲內置實現,它優先於外部二進制文件。 – cjm

+0

編輯刪除對'test'的引用 –

相關問題