加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何使用Ruby编写类似shell的脚本?

发布时间:2020-12-17 03:40:03 所属栏目:百科 来源:网络整理
导读:我的任务是编写一个简单的 Ruby脚本,它将执行以下操作. 从UNIX命令行执行时,它会向用户显示一个提示符,在该提示符下,他应该能够运行某些命令,例如“dir”,“help”或“exit”.在“退出”时,用户应该返回到Unix shell. 我不是要求解决方案;我想知道如何在Ruby
我的任务是编写一个简单的 Ruby脚本,它将执行以下操作.

从UNIX命令行执行时,它会向用户显示一个提示符,在该提示符下,他应该能够运行某些命令,例如“dir”,“help”或“exit”.在“退出”时,用户应该返回到Unix shell.

我不是要求解决方案;我想知道如何在Ruby中实现这个“shell”功能.如何向用户显示提示和解释命令.

我不需要带有参数的CLI脚本.我需要一些创建shell接口的东西.

解决方法

只需几个简单的结构就可以轻松完成所需的程序类型.
我知道你不是在寻求解决方案,但我会给你一个骷髅来开始并玩弄:

#!/usr/bin/env ruby
def prnthelp
  puts "Hello sir,what would you like to do?"
  puts "1: dir"
  puts "2: exit"
end

def loop
  prnthelp
  case gets.chomp.to_i
    when 1 then puts "you chose dir!"
    when 2 then puts "you chose exit!"
      exit
  end
  loop
end

loop

无论如何,这是一个关于如何做到的简单示例,但可能评论中推荐的书更好.但这只是为了让你失望.

一些让你入门的命令是:

somevar = gets

这可以获得用户输入.也许了解一些字符串方法来操纵这个输入可以对你有所帮助. http://ruby-doc.org/core-2.0/String.html
chomp将切掉任何空格,并将to_i转换为整数.

一些命令做Unix的东西:

system('ls -la') #=> outputs the output of that command
exit #=> exits the program

无论如何,如果你想要这种东西,我认为查看http://www.codecademy.com/并不是一个坏主意,他们通过编写像这样的小脚本来教你Ruby.但是,它们可能不完全适应Unix命令,但用户输入和喜欢的东西肯定是处理的.

编辑:

正如所指出的那样,在脚本的顶部使用它:

#!/usr/bin/env ruby

编辑:

chomp与chop的例子:

full_name = "My Name is Ravikanthrn" 
full_name.chop! # => "My Name is Ravikanth"

现在如果你运行印章并且没有换行符:

puts full_name    #=> "My Name is Ravikanth"
full_name.chop!  #=> "My Name is Ravikant"

与:

puts full_name       #=> "My Name is Ravikanthrn"

full_name.chomp!  #=> "My Name is Ravikanth"
full_name.chomp!  #=> "My Name is Ravikanth"

见:“Ruby Chop vs Chomp”

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读