Tôi đã suy nghĩ về câu hỏi này khi sử dụng đuôi tên tệp trong Unix/MacOSX và câu trả lời tốt nhất tôi có thể cung cấp là dán từ nhận xét phát triển của mình trong một số mã tôi đã viết cách đây nhiều năm để tự động hóa toàn bộ quá trình cập nhật tập lệnh. vào/usr/local/bin.
I have begun to
change how I develop code for my contributions to
/usr/local/bin. In the past I would always leave the development
file without an extension and depend on the shebang
#!/usr/bin/env ...) line. The flaw with using this approach
exclusively is it does not allow me to utilize the code colorizing
capabilities I have available for programming languages as deftly
as I might. Also allot of development environments do not
understand shebang and so see the code as plain text. Nor are the
contents of files without file extensions accessible via the MacOSX
QuickLook feature...
Nói tóm lại, mã tự động hóa của tôi (chứ không phải để nhiều để trả lời ở đây) 'sudo' chèn một bản sao mở rộng-less thực thi của chương trình trong/usr/local/bin nhưng các tập tin trong thư mục phát triển giữ nó mở rộng ngôn ngữ script/chương trình tại chỗ. Cả hai bản sao đều có cùng một dòng shebang ở đầu tệp.Vô số nhiệm vụ lặp đi lặp lại khác cũng được tự động hóa trong mã tự động hóa này. Nhưng phần thưởng cuối cùng là 'overhead' liên quan đến quá trình viết 'lệnh' mới hoặc tinh chỉnh lệnh hiện tại/usr/local/bin 'chỉ cần một vài lần nhấn phím.
Tôi vẫn ở trên Snow Leopard và vẫn cảnh giác với Lion. Vì vậy, nếu mọi thứ khác nhau trên Lion tôi xin lỗi vì bất kỳ sự nhầm lẫn nào. Ngoài ra nếu hệ điều hành của bạn không có tương đương với QuickLook một số những gì tôi đã nói có thể bị mất vào bạn nhưng tôi nghĩ rằng bất kỳ người dùng Linux/Unix vẫn có thể hưởng lợi từ mã hóa màu sắc thông qua vim/less (http: // www- lệnh zeuthen.desy.de/~friebel/unix/less/README).
Một ví dụ về một số lượng mã boilerplate colorizing tự động của tôi tạo điều kiện cho QuickLooking qua mã trong thư mục phát triển:
/usr/bin/highlight --syntax sh --style neon -i "/Users/pcs/Projects /Shell/Bash/findpdftext/findpdftext.sh" >| "/Users/pcs/Projects/Shell /Bash/findpdftext/findpdftext.sh.html"
Tạo soạn sẵn html này chi phí cho tôi không có gì và đẹp hơn trong QuickLook hơn các trang người đàn ông đó là cũng được tạo tự động. Một ví dụ nhỏ khác về đầu ra tự động đi vào tập lệnh trong thư mục phát triển của chương trình sẽ chạy khi tôi sẵn sàng cam kết bất kỳ thay đổi nào đối với kịch bản được đề cập đến bản sao 'lệnh' trong/usr/local/bin:
##################################### REWIRE findpdftext.sh:
chmod 777 "/Users/pcs/Projects/Shell/Bash/findpdftext/findpdftext.sh"
cp -f "findpdftext.sh" "findpdftext"
sudo ln -f "findpdftext" /usr/local/bin
cp -f "findpdftext" "/Users/pcs/man/cat1/findpdftext.1"
############### SYMBOLIC-LINK-NAMES supplied from command-line:
##### fpdf is a symbolic link to findpdftext
sudo ln -s -f "/usr/local/bin/findpdftext" "/usr/local/bin/fpdf"
cp -f "/usr/local/bin/findpdftext" "/Users/pcs/man/cat1/fpdf.1"
############### SYMBOLIC-LINK-NAMES supplied from command-line:
##### fpt is a symbolic link to findpdftext
sudo ln -s -f "/usr/local/bin/findpdftext" "/usr/local/bin/fpt"
cp -f "/usr/local/bin/findpdftext" "/Users/pcs/man/cat1/fpt.1"
Tóm lại, đối với tôi, có nhiều lý do để sử dụng cả hai kiểu đặt tên tệp.
nhớ dòng shebang là dòng đầu tiên của tập lệnh để làm việc này –
Có phải mọi người đều đặt tên cho tập lệnh shell của chúng .sh? I * không bao giờ * sử dụng phần mở rộng '.sh' trên các tập lệnh, vì vậy tôi luôn gõ 'shellscript' –
@Stephen P - Tôi có xu hướng đặt tên là .sh (hoặc .bash) nếu chúng nhỏ một chút mà tôi ' m chỉ cần một vài lần và chạy từ thư mục nhà của tôi, nhưng thả phần mở rộng nếu tôi sẽ di chuyển chúng vào một thư mục bin và chia sẻ chúng với người dùng khác hoặc sử dụng chúng rất nhiều. – rjmunro