Bootstrap

ruby编写linux脚本,如何使用Ruby编写类似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 Ravikanth\r\n"

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 Ravikanth\r\n"

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

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

;