2009-04-01 28 views

Trả lời

24

Trong UNIX và Linux, mã nhị phân này sử dụng làm thông dịch viên (xem thêm Wiki page). Ví dụ: shell script được diễn giải bởi /bin/sh.

#!/bin/sh 

Bây giờ với python hơi khó, vì bạn không thể giả định nơi cài đặt nhị phân hoặc bạn cũng không muốn sử dụng. Vì vậy, thủ thuật /usr/bin/env. Nó sử dụng bất kỳ nhị phân python là lần đầu tiên trong $PATH. Bạn có thể kiểm tra việc thực thi which python

Với dòng thông dịch viên, bạn có thể chạy tập lệnh bằng cách mã hóa nó thành tệp thực thi. Và chỉ cần chạy nó. Do đó với kịch bản bắt đầu với

#!/usr/bin/env python 

hai phương pháp này là tương đương:

$ python script.py 

và (giả định rằng trước đó bạn đã làm chmod +x script.py)

$ ./script.py 

này rất hữu ích cho tạo kịch bản hệ thống rộng.

cp yourCmd.py /usr/local/bin/yourCmd 
chmod a+rx /usr/local/bin/yourCmd 

Và sau đó bạn gọi nó từ bất cứ nơi nào chỉ với

yourCmd 
5

Dưới UNIX và các hệ điều hành tương tự, dòng này cho biết trình thông dịch nào sẽ được sử dụng nếu tệp được thực thi.

+0

-1: Quên tài liệu tham khảo: http://en.wikipedia.org/wiki/Shebang_(Unix) –

+0

không được nhầm lẫn với http://en.wikipedia.org/wiki/She_Bangs –

+0

Pete .. . Bạn đã làm ngày hôm nay của tôi trở nên thú vị. Ví dụ: –

14

này được gọi là một dòng shebang: "#"

Trong máy tính, một công việc (hay còn gọi là hashbang, hashpling, hoặc bảng nổ) đề cập đến các nhân vật khi chúng là hai ký tự đầu tiên trong một tệp văn bản. Các hệ điều hành giống Unix có sự hiện diện của hai ký tự này như là một dấu hiệu cho thấy tệp là một tập lệnh và cố gắng thực thi tập lệnh đó bằng cách sử dụng trình thông dịch được chỉ định bởi phần còn lại của dòng đầu tiên trong tệp. Ví dụ: shell script cho Bourne shell bắt đầu bằng dòng đầu tiên:

+0

Ví dụ: shell script cho Bourne shell bắt đầu bằng dòng đầu tiên: liên kết | gây khó chịu? – Dan

+0

... '#!/Bin/bash'. –

3

'/ usr/bin/env python' searches $ PATH for python và chạy nó.

Thường env được sử dụng để thiết lập một số biến môi trường cho một chương trình

gì dòng điều đó không được nói với máy tính của bạn phải làm gì với tập tin đó, nếu bạn chỉ đơn giản là cố gắng để chạy các tập tin mà không chỉ định thông dịch viên .. more detail

5

Như Andri nói.Trong Windows, thực thi để chạy một tập tin với khi khởi chạy từ dòng lệnh dựa trên một hiệp hội:

16:12:40.68 C:\>assoc .py 
.py=Python.File 

16:13:53.45 C:\>assoc Python.File 
Python.File=Python File 

16:14:01.70 C:\>ftype Python.File 
Python.File="C:\Python30\python.exe" "%1" %* 

Trong Unix, người phiên dịch vỏ làm cho suy luận bằng cách mở tập tin và nhìn thấy nếu có một lệnh có tên trong tập tin.

+0

Luôn hữu ích cho những ngày tôi làm việc trên một hộp gió. –

2

Chỉ cần lưu ý, dòng này không là gì nữa, sau đó nhận xét cho thông dịch viên trong Windows.

+3

nó cũng không có gì hơn là một bình luận cho thông dịch viên trong unix – hop

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