zoukankan      html  css  js  c++  java
  • 交互式Shell

    irb是从命令行运行的交互式shell

    在命令行中输入irb后回车,进入交互式ruby模式

    (1) 可以用load载入rb文件执行,如以下文件

    code/fib_up_to.rb

    def fib_up_to(max)

    i1,i2=1,1

    while i1<=max

    yield i1

    i1,i2=i2,i1+i2

    end

    end

    %irb

    irb(main):001:0>load 'code/fib_up_to.rb'

    =>true

    irb(main):002:0>result=[]

    =>[]

    irb(main):003:0>fib_up_to(20){|var| result<<var}

    =>nil

    irb(main):004:0 >result

    =>[1,1,2,3,5,8,13]

    (2) Tab补齐

    irb(main):001:0>a="cat"

    =>"cat"

    如果现在想尝试string%reverse方法,可先键入a.re然后按下Tab键两次,这时会出现所有以"re"开头的方法

    a.reject a.replace a.resonse_to? a.reverse a.reverse!

    我们继续按下v为a.rev,再次按下Tab键,会总动补齐为a.reverse回车

    =>"tac"

    如果在irb中定义了一个类,当想调用它的方法,也可用Tab补齐,Tab补齐是以一个扩展库来实现的,即irb/completion,当调用irb是,你可以从命令行加载它

    irb -r irb/completion

    或在运行中加入

    irb(mai):001:0 >require 'irb/completion'

    =>true

    (3) 子会话

    irb支持多个并发的会话,当前端的会话只有一个,其他的在被激活前处于休眠状态,如:

    % irb -r code/fib_up_to.rb

    irb(mai):001:0 >result=[]

    irb(mai):002:0 >fib_up_to(10) {|var| result <<val}

    =>nil

    irb(mai):003:0 >result

    =>[1,1,2,3,5,8]

    irb(mai):004:0>#create a nested irb session

    irb(mai):005:0>#irb

    irb#1(main):001:0 >result=%w{cat dog horse}

    irb#1(main):002:0 >result.map{|val| val.upcase}

    =>["CAT","DOG","HORSE"]

    irb#1(main):003:0 >jobs

    =>#0->irb on main (#<Thread:0xx331740>:stop)

    #1->irb#1 on main(#<Thread \: ox341694>:running)

    irb#1(main):004:0>fg 0

    irb(main):005:0>result

    =>[1,1,2,3,5,8]

    irb(main):006:0>fg 1

    irb #1(main):005:0>result

    =>["cat","dog","horse"]

  • 相关阅读:
    Python_代码练习_写一个判断是否为小数的函数
    Python学习杂记_11_函数(一)
    Python学习杂记_10_三元运算符
    Python学习杂记_9_集合操作
    Python学习杂记_8_从程序外部传参的办法sys.argv
    Python学习杂记_7_文件操作
    Python学习杂记_6_字典常用操作
    Python学习杂记_5_列表常用操作
    Python学习杂记_4_分支和循环
    Python学习杂记_3_字符串操作的常用方法
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2035863.html
Copyright © 2011-2022 走看看