我想通过“ ruby -e”执行程序,但是如果它在单行中,则执行程序,但如果是多行,则不执行,并引发错误。例如,
>ruby -e "puts 'rajagopalan'"
=>rajagopalan
但是
>ruby -e "a=[1,2,3,4,5]
a.each do |i|
puts i
end
"
它抛出错误“ a.each do | i | 该命令的语法不正确。 “
有人可以指导我如何通过ruby -e
答案 0 :(得分:0)
您可以在shell命令中尝试here document
:
ruby <<END
a=[1,2,3,4,5]
a.each do |i|
puts i
end
END
希望这会有所帮助。...
答案 1 :(得分:0)
尝试一下:
>ruby -e "a=[1,2,3,4,5]; a.each do |i| puts i; end"
基本思想,在需要换行的地方使用分号。
答案 2 :(得分:0)
这与Ruby无关。您需要阅读终端仿真器和Shell的手册,并弄清楚如何转义换行符。
从您所发布的错误中可以看出,第一行之后会出现shell提示,因此shell显然认为命令已完成。因此,shell尝试将Ruby命令解释为shell命令,从而导致错误。