Thường thì tôi sẽ thấy các tập lệnh bắt đầu bằng một dòng shebang sử dụng #!/usr/bin/env interpreter_name
cho bất kỳ trình thông dịch nào, với lý do là các hệ thống khác nhau có thể có trình thông dịch mà chúng cần để chạy được cài đặt ở những nơi khác nhau. Chẳng hạn, nếu tôi giả sử python
được cài đặt /usr/bin/python
thì một số người dùng đã quyết định cài đặt nó vì /opt/python
một số lý do sẽ không thể sử dụng nó một cách dễ dàng.
Nhưng câu hỏi rõ ràng là, có bất kỳ đảm bảo nào env
sẽ được cài đặt tại /usr/bin/env
(hoặc cho vấn đề đó ở bất kỳ địa điểm cụ thể nào không), hay đây chỉ là một trường hợp "di chuyển vấn đề" để nói?
Câu hỏi hơi liên quan này có một nhận xét nói rằng đó là một ý tưởng tồi và tốt nhất là cài đặt nó với đường dẫn thực tế của trình thông dịch và trích dẫn đặc tả unix duy nhất nhưng không thực sự giải quyết câu hỏi này.
python
perl
, v.v., bây giờ bạn chỉ cần săn lùngenv
, vì vậy cùng một vấn đề, nhưng một mục tiêu khác. Dường như nóenv
dễ tìm hơn nhiều, và rõ ràng là linh hoạt hơn nhiều, vì vậy nó vẫn rất thuận lợi. Mà trả lời câu hỏi của tôi hoàn hảo. Cảm ơn bạn!