如何从 Terminal.app 运行一段 ruby​​ 代码?

发布于 2024-12-25 13:20:08 字数 259 浏览 2 评论 0原文

我专门使用 OS X Terminal.app 进行命令行操作,但这个问题也可能适用于其他命令行工具。

假设我想从命令行运行这段 ruby​​ 代码:

Cats.each do |cat|
  cat.name = 'Mommy'

  cat.kittens each do |kitten|
    kitten.color = "Brown"
  end
end

现在,如果我复制/粘贴,它就会被破坏并且不会执行。

I'm specifically using OS X Terminal.app for command line stuff, but this question may also apply to other command line tools.

Say I want to run this block of ruby code from the command line:

Cats.each do |cat|
  cat.name = 'Mommy'

  cat.kittens each do |kitten|
    kitten.color = "Brown"
  end
end

Right now if I copy/paste that it just gets broken up and doesn't execute.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

很酷不放纵 2025-01-01 13:20:08
ruby -e "Cats.each do |cat|
  cat.name = 'Mommy'

  cat.kittens each do |kitten|
    kitten.color = 'Brown'
  end
end"
ruby -e "Cats.each do |cat|
  cat.name = 'Mommy'

  cat.kittens each do |kitten|
    kitten.color = 'Brown'
  end
end"
陈独秀 2025-01-01 13:20:08

请注意,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

其他技巧,您可以使用它在特定脚本的上下文中运行irb

Please note that Terminal.app is not itself a Ruby interpreter. You'll want to fire up irb to get an interactive Ruby console:

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

There are other tricks you can use to run irb in the context of a particular script.

淡紫姑娘! 2025-01-01 13:20:08

首先,您需要运行 irb(或使用 ruby​​ -e 将代码传递给解释器),因为终端不知道该代码块是什么或如何解释它。

之后,您应该能够按照您所说的将其粘贴进去来运行。

Well first you need to run irb (or pass the code to the interpreter using ruby -e) as the terminal doesn't have any idea what that block of code is or how to interpret it.

After that you should be able to run in by pasting it in as you say.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文