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