在bash中,如果我有两个脚本,一个带有函数,另一个使用第一个脚本作为源,那么我可以在第二个脚本中访问函数。我可以用ruby做类似的事情吗?
我可以这样做:
test1.sh
doThing() {
echo "Doing Thing"
}
test2.sh
source ./test1.sh
doThing
有没有一种方法可以用ruby做类似的事情?以下失败。
test1.rb
def doThing
puts "Doing Thing"
end
test2.sh
source ./test1.rb
doThing
谢谢
2条答案
按热度按时间fafcakar1#
快速的回答是“不”,但是你可以从bash调用ruby程序,就像你可以调用任何其他可执行文件一样:
gmol16392#
你不需要
source
Ruby,你只需要ruby
Ruby,或者更好的是,添加一个shell“hashbang”:然后使该脚本可执行。从那里开始,它就像
./test.rb
一样简单。您需要能够通过
ENV
转发参数(如export MY_VAR=...
),或者作为命令行参数转发参数(如--my-var=...
通过OptionParser
)。如果你正在使用Ruby,值得记住的是Ruby比shell脚本更强大,所以你可能想颠倒一下:让Ruby驱动某些shell命令,例如
system
,而不是shell驱动Ruby。