0
我有這個在我的文件的頂部:紅寶石-s返回沒有這樣的文件或目錄(交換機)
#!/usr/bin/env ruby -s
它的工作原理沒有-s
並運行正常,但是我想簡單的開關,所以我想-s
到工作。當我運行它-s
我得到:
/usr/bin/env: ruby -s: No such file or directory
這是一個語法錯誤?
我有這個在我的文件的頂部:紅寶石-s返回沒有這樣的文件或目錄(交換機)
#!/usr/bin/env ruby -s
它的工作原理沒有-s
並運行正常,但是我想簡單的開關,所以我想-s
到工作。當我運行它-s
我得到:
/usr/bin/env: ruby -s: No such file or directory
這是一個語法錯誤?
您只能將一個選項傳遞給shebang中命名的命令。或者說真話,如果你傳遞了多個參數,它們不會被爆炸,而是作爲單個參數傳遞。在這種情況下,如:
/usr/bin/env 'ruby -s'
但文件'ruby -s'
不存在。這就是錯誤信息的原因。
繼Ruby的手冊頁,你應該不使用下面的家當:
#! /usr/bin/ruby -s
# :prints "true" if invoked with `-xyz' switch.
print "true\n" if $xyz
你需要調用紅寶石,而不是直接使用/usr/bin/env
的。這是一個缺點,但這樣做,你可以這樣調用腳本:
./script.rb -xyz
那麼有沒有辦法得到開關選項? – isignisign
我已經添加了。 – hek2mgl