我专门将OS X Terminal.app用于命令行工具,但这个问题也可能适用于其他命令行工具。
假设我想从命令行运行这段ruby代码:
Cats.each do |cat|
cat.name = 'Mommy'
cat.kittens each do |kitten|
kitten.color = "Brown"
end
end现在,如果我复制/粘贴它,它就会被分解,不会执行。
发布于 2012-01-10 05:48:48
请注意,Terminal.app本身并不是一个Ruby解释器。你会想要启动irb来获得一个交互式的Ruby控制台:
user@host # irb
irb(main):001:0> Cats.each do |cat|
irb(main):002:1* cat.name = 'Mommy'
irb(main):003:1>
irb(main):004:1* cat.kittens each do |kitten|
irb(main):005:2* kitten.color = "Brown"
irb(main):006:2> end
irb(main):007:1> end
NameError: uninitialized constant Cats
from (irb):1
from :0您可以使用other tricks在特定脚本的上下文中运行irb。
发布于 2012-01-10 05:48:07
ruby -e "Cats.each do |cat|
cat.name = 'Mommy'
cat.kittens each do |kitten|
kitten.color = 'Brown'
end
end"发布于 2012-01-10 05:48:16
首先,您需要运行irb (或者使用ruby -e将代码传递给解释器),因为终端根本不知道这段代码是什么,也不知道如何解释它。
在此之后,您应该能够像您所说的那样通过粘贴它来运行。
https://stackoverflow.com/questions/8795620
复制相似问题