2012-01-25 32 views
5

Có một câu hỏi tương tự về Windows, nhưng nó sẽ không hoạt động đối với các máy tính dựa trên Unix (OS X cụ thể).thực hiện perl trong dòng lệnh mà không chỉ định perl trong UNIX

Tôi muốn nhập tên của một tệp, giả sử example.pl hoặc example.pl parametertext.txt và biết cách thực thi perl.

Tôi đã chỉ định #!/usr/bin/perl trong tệp để tệp có thể tìm thấy tệp thực thi. Thay vào đó, tôi nhận được thông báo:

bash: example.pl: command not found 
+5

Nó không phải là '#!/Usr/bin/perl'? Với không gian (không chắc chắn nếu điều đó quan trọng) và một con đường đầy đủ? Ngoài ra, tệp .pl của bạn có thể thực thi được không? (thử 'chmod + x example.pl'). Chưa kể nếu '.' không nằm trong' PATH', thì bạn cần chạy './Example.pl', thay vì' example.pl'. –

+1

Bạn cũng đã đặt tệp thực thi? "Không làm việc" có nghĩa là gì, bạn có thể cung cấp (các) thông báo lỗi không? –

+0

@DanFego vâng, tôi nghĩ rằng autocorrect va chạm nó qua nhưng tôi đã quên/ – Chris

Trả lời

11

Bạn có thể làm theo cách này,

  1. Tìm người phiên dịch/Chấp hành con đường. Trong trường hợp này, hãy /usr/bin/perl hoặc /usr/bin/env perl
  2. thêm nó vào dòng đầu tiên của tệp là #!/usr/bin/perl.
  3. Give thực hiện phép file chmod +x example.pl

Bây giờ nó sẽ chạy

$ ./example.pl 
2

Bạn cần phải thực hiện dòng trên cùng (các "công việc") #!/usr/bin/perl (chú ý dấu gạch chéo, nơi bạn có một không gian). Sau đó, trước tiên, bạn cần đảm bảo rằng đó thực sự là đường dẫn chính xác đến tệp thực thi perl của bạn (loại which perl để xem vị trí của nó). Nếu nó ở nơi khác, hãy sửa đường dẫn một cách thích hợp. Sau đó, bạn cần đảm bảo tập lệnh có tập quyền thực thi. Nhập ls -l example.pl và tìm kiếm x trong cột đầu tiên (đặc biệt là ký tự thứ tư). Nếu không có ở đó, bạn cần phải thực thi tập lệnh có thể thực thi với chmod a+x example.pl. Cuối cùng, để chạy chương trình, bạn cần sử dụng ./example.pl. ./ cho trình bao của bạn biết rằng bạn muốn tập lệnh trong thư mục hiện tại của mình.

1

Tôi có hai suy nghĩ thêm:

1) Để sử dụng example.pl test1.txt đường dẫn của bạn nên chứa dấu chấm. echo $ PATH /usr/bin:/usr/X11R6/bin:/usr/bin/X11 :.

2) Kết thúc tệp của bạn phải được kết hợp, \ n. Ít nhất dòng shebang của bạn chứa excatly đường dẫn perl của bạn, kết thúc bằng \ n.

Các vấn đề liên quan