交互式Shell

简介: irb是从命令行运行的交互式shell 在命令行中输入irb后回车,进入交互式ruby模式 (1) 可以用load载入rb文件执行,如以下文件 code/fib_up_to.rb def fib_up_to(max) i1,i2=1,1 while i1load 'code/fib_up_to.

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"]

相关文章
|
3月前
|
安全 Shell Linux
从命令行界面运行交互式PHP Shell
从命令行界面运行交互式PHP Shell
|
7月前
|
Shell Linux Windows
Linux【脚本 05】交互式shell脚本编写及问题处理([: ==: unary operator expected)[: ==: 期待一元表达式
Linux【脚本 05】交互式shell脚本编写及问题处理([: ==: unary operator expected)[: ==: 期待一元表达式
169 1
|
Shell
交互式shell脚本编程3
交互式shell脚本编程3
|
Shell Linux 数据安全/隐私保护
交互式shell脚本编程2
交互式shell脚本编程2
113 0
|
Shell 测试技术
交互式shell脚本编程1
交互式shell脚本编程1
|
Shell PHP Windows
php交互式命令行工具window操作系统安装readline扩展函数实现interactive mode enabled到Interactive Shell
php交互式命令行工具window操作系统安装readline扩展函数实现interactive mode enabled到Interactive Shell
110 0
|
Shell 网络安全
login shell和non-login?交互式shell和非交互式shell?
执行一个 shell 的时候分成login shell和non-login shell。logshell
142 0
|
Shell Linux 网络安全
Shell脚本中利用expect实现非交互式
expect非交互式 expect可以在脚本中完成一些交互式的操作,例如远程登录时要输入yes或者输入密码 expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。 expect自动交互流程:
613 0