当前位置: 首页 > 编程笔记 >

ruby开发的交互式程序例子

周健
2023-03-14
本文向大家介绍ruby开发的交互式程序例子,包括了ruby开发的交互式程序例子的使用技巧和注意事项,需要的朋友参考一下

实现pry,ronin,msf类似的终端下交互功能,这里主要用到了ripl gem:

1.能够调用定义的方法,如help
2.能够执行系统命令
3.能够类似irb/pry进行ruby语言解析

安装:

gem install ripl
gem install ripl-shell_commands

示例

ripl这个gem,它也提供很多插件,如下是一个简单的终端下交互实现:

require 'ripl'
require 'ripl/shell_commands'
require 'ripl/color_result'
require 'ripl/color_streams'
require 'ripl/commands'
require 'ripl/rocket'

#设置输出颜色
Ripl.config[:color_streams_stdout] = :light_blue
Ripl.config[:color_streams_stderr] = :light_red

#定义提示符号
Ripl.config[:prompt] = lambda {"[#{Ripl.shell.line.to_s}] cmd> " }

# Define plugins, load files, etc...

class Dodolook
 def help
 puts "xiaomi noops blog"
 end
 def name 
 "wilbur"
 end
end
dodo = Dodolook.new

verison = "1.0.3"
Ripl.start :binding => dodo.instance_eval{ binding }

使用

在终端下运行程序后,出现[0] cmd>这样的提示,其中help、name、dodo这些变量/方法可以tab补全。

运行shell命令前加!,如:!df
还有更多内部方法,如: history, list, jump…

 类似资料:
  • 下面是我试图实现的:打开一个shell(korn或bash,没关系),从该shell,我想打开一个ssh连接()。在某个时候,它可能会发生,我会被提示输入密码,或者我可能会被问到是否确定我想要连接(违规密钥)。 在有人问之前:是的,我知道有一个ssh2 exec调用插件,但是我正在使用的服务器不支持它,也不太可能这样做。 以下是我迄今为止所尝试的: 然后我尝试读取控制台输出(),查看下一步必须传递

  • 本文向大家介绍交互式Vim教程(例如vimtutor),包括了交互式Vim教程(例如vimtutor)的使用技巧和注意事项,需要的朋友参考一下 示例 vimtutor 是一个交互式教程,涵盖了文本编辑的最基本方面。 在类似UNIX的系统上,可以使用以下内容开始本教程: 在Windows上,可以在Windows菜单中“所有程序”下的“ Vim 7.x”目录中找到“ Vim tutor”。 有关:he

  • 我正在开发一个交互式排序应用程序。我必须将数字表示为矩形,并且例如,当排序算法运行时,当两个数字互换时,矩形必须互换。我想用动画来做这件事。我如何交换矩形?我目前正在使用transition测试这个功能,但我遇到了一些问题。我有两个矩形在一组。当我尝试交换矩形时,两者会在中间相遇并停止。代码如下: 我需要一个类似于帆布的窗格。我需要能够设置矩形坐标。

  • 本文向大家介绍Ruby使用Monkey Patch猴子补丁方式进行程序开发的示例,包括了Ruby使用Monkey Patch猴子补丁方式进行程序开发的示例的使用技巧和注意事项,需要的朋友参考一下 猴子补丁(Monkey Patch)是一种特殊的编程技巧。Monkey patch 可以用来在运行时动态地修改(扩展)类或模块。我们可以通过添加 Monkey Patch 来修改不满足自己需求的第三方库,

  • 本文向大家介绍python交互式图形编程实例(三),包括了python交互式图形编程实例(三)的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python交互式图形编程实例的第三部代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍python交互式图形编程实例(二),包括了python交互式图形编程实例(二)的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python交互式图形编程的第二部分代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。