Tôi sẽ mâu thuẫn với mrb và nói rằng bạn có thể thay thế, mà không thay đổi "#!" hàng.
Giả sử bạn có một tập lệnh ruby với #!/usr/bin/env rubydòng đầu tiên.
Bạn muốn /path/to/better/ruby/version/whateverchạy tập lệnh, bạn đặt biến môi trường PATH thành /path/to/better/ruby/versionđầu tiên:
PATH=/path/to/better/ruby/version:$PATH whatever_script_name_is
Bạn muốn /usr/local/bin/rubychạy script? Đặt PATH thích hợp:
PATH=/usr/local/bin:$PATH whatever_script_name_is
Lưu ý rằng việc đấu tranh với PATH có thể gây ra các vấn đề khác trong trường hợp ruby thực thi mà bạn muốn chạy tập lệnh nằm trong cùng thư mục với các chương trình thay thế khác. Ví dụ: nếu /usr/local/bincó BSD cat, grepthì sedtrong đó cũng như rubykhi bạn đặt, PATH=/usr/local/bin:$PATHbạn sẽ nhận được các tệp thực thi BSD thay vì các tệp thực thi của Linux. Đó có thể là một vấn đề.