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_namecho 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/pythonthì một số người dùng đã quyết định cài đặt nó vì /opt/pythonmộ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 envsẽ đượ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.
pythonperl, 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óenvdễ 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!