Ruby 尝试在自定义pry命令中运行pry命令

Ruby 尝试在自定义pry命令中运行pry命令,ruby,pry,Ruby,Pry,我正在尝试自定义我的Pry(使用Pry有一段时间了,但这是我第一次尝试创建命令。)我想创建一个自定义命令,它将从我的历史记录中获取最后50项,我正在这样构建它: Pry::Commands.block_command "fifty", "List the last fifty inputs" do hist --tail=50 -a end 一旦该命令出现在我的.pryrc文件中,它确实会显示我是否执行了“help 50”,但如果我尝试运行该命令,则会得到以下结果: NameError:

我正在尝试自定义我的Pry(使用Pry有一段时间了,但这是我第一次尝试创建命令。)我想创建一个自定义命令,它将从我的历史记录中获取最后50项,我正在这样构建它:

Pry::Commands.block_command "fifty", "List the last fifty inputs" do
  hist --tail=50 -a
end
一旦该命令出现在我的.pryrc文件中,它确实会显示我是否执行了“help 50”,但如果我尝试运行该命令,则会得到以下结果:

NameError: undefined local variable or method `a' for #<#<Class:0x007f8a1ee49aa8>:0x007f8a1e873ed0>
工作很好。感谢您的任何输入。

您缺少运行其他
pry
命令所需的信息:

Pry::Commands.block_command 'fifty', 'List the last fifty inputs' do |x|
  run 'hist --tail=50 -a'
end

hist--tail=50-a
在我看来不像ruby代码,您是否试图像ruby是shell脚本语言一样执行外部命令?如果是这种情况,您需要使用backtick操作符,或者类似于
system
。如果这是一个pry自己理解的命令,那么您可能需要调用一些pry API并将该命令作为字符串传递。正确的是,它不是Ruby代码,pry REPL有自己的脚本语言,这就是它。当涉及到将这些脚本放入命令块时(实际的Ruby代码工作没有问题),管理这一点的文档不是很清楚,这就像一个魅力!我不知道我在设置时怎么会错过这个,但是run方法是我需要的秘方。非常感谢你,你不知道这会提高我的工作效率。
Pry::Commands.block_command 'fifty', 'List the last fifty inputs' do |x|
  run 'hist --tail=50 -a'
end