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 ruby
dòng đầu tiên.
Bạn muốn /path/to/better/ruby/version/whatever
chạ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/ruby
chạ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/bin
có BSD cat
, grep
thì sed
trong đó cũng như ruby
khi bạn đặt, PATH=/usr/local/bin:$PATH
bạ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 đề.