如何使用Ruby编写类似shell的脚本?
我的任务是编写一个简单的
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 一些命令做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” (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |