2012-01-25 108 views
5

還有一個類似Windows的問題,但它不適用於基於Unix的計算機(特別是OS X)。在命令行中執行perl而不指定UNIX中的perl

我想輸入一個文件的名稱,比如說example.plexample.pl parametertext.txt,並且知道它執行perl。

我在文件中指定了#!/usr/bin/perl,所以它可以找到可執行文件。相反,我得到的消息:

bash: example.pl: command not found 
+5

是不是應該是'#!/ usr/bin/perl'?沒有空格(不知道是否重要)和完整路徑?另外,你的.pl文件是否可執行? (嘗試'chmod + x example.pl')。更不用說如果'.'不在你的'PATH'中,那麼你需要運行'。example.pl'而不是'example.pl'。 –

+1

你還設置了可執行文件嗎? 「不工作」是什麼意思,你能給出錯誤信息嗎? –

+0

@DanFego是的,我認爲autocorrect碰到它,但我沒有忘記/ – Chris

回答

11

你能做到這樣,

  1. 查找翻譯/執行人路徑。在這種情況下,其/usr/bin/perl/usr/bin/env perl
  2. 將其添加到文件的第一行爲#!/usr/bin/perl
  3. 給執行權限文件chmod +x example.pl

現在它將會運行

$ ./example.pl 
2

你需要做的頂線(以下簡稱「認領」)#!/usr/bin/perl(注意斜線,你有一個空格)。然後,首先你需要確保它是你的perl可執行文件的正確路徑(輸入which perl來查看它的位置)。如果它在其他地方,請適當修改路徑。然後您需要確保腳本具有執行權限設置。鍵入ls -l example.pl,並在第一列(特別是第四個字符)中查找x。如果它不存在,則需要使腳本可執行chmod a+x example.pl。最後,要運行該程序,您需要使用./example.pl./告訴你的shell你想要當前目錄下的腳本。

1

我有兩個想法補充:

1)要使用example.pl test1.txt的您的路徑應該包含一個點。 echo $ PATH /usr/bin:/ usr/X11R6/bin:/ usr/bin/X11 :.

2)你的文件行尾應該是unix,\ n。至少你的shebang行包含perl路徑,以\ n結尾。