Ruby
您如何指定替代腳本解釋器(shebangs)?
在執行檔中,您使用 shebang 指定環境:
#!/usr/bin/env ruby # ruby code here
但是,如果您想指定多個可能的環境怎麼辦?例如,如果您安裝了多個版本的 Ruby,您可能想要執行類似的操作
#!/path/to/better/ruby/version #!/path/to/alternative/ruby/version # ruby code here
如何為單個執行檔指定多個可能的環境?
簡短的回答是你不能。
#!/usr/bin/env ruby
使用而不是簡單地背後的想法#!/usr/bin/ruby
是使用使用者路徑中首先出現的任何 ruby 二進製文件。那麼你的腳本不依賴於每個系統上的 ruby 都在同一個地方;畢竟,“正常”的紅寶石位置可能是/usr/bin/ruby
,/usr/local/bin/ruby
,/opt/ruby-1.8.7/bin/ruby
, 等等…如果您確實想要硬編碼一些值或執行一些搜尋邏輯,您總是可以製作一個包裝器 shell 腳本:
#!/bin/sh for ruby in /usr/bin/ruby /usr/local/bin/ruby do if [ -x "$ruby" ] then "$ruby" myscript.rb break fi done
如果你有足夠的動力,你甚至可以在 shell 腳本中嵌入一個 ruby(或其他)腳本。