我正在ruby中构建一个小工具,用于根据我从命令行发出的命令创建目录和文件。我希望这可以在Mac,Windows和Linux上运行。
我当然是ruby的新手,我知道如何修改一个简单的脚本并将其命令从命令行运行。我想要做的是能够在我的系统上的任何地方导航调用应用程序的名称并传递args,以便我可以在命令行中创建基于我当前位置的文件和目录。
示例$> myapp -create mydirectoryname
那么最好的方法是什么呢。你们能指点我一个资源,让我了解这个吗?非常感谢。
马修
答案 0 :(得分:1)
如果您需要标准内容,请参阅Getoptlong
require 'getoptlong'
opts = GetoptLong.new(
[ '--help', '-h', GetoptLong::NO_ARGUMENT ],
[ '--repeat', '-n', GetoptLong::REQUIRED_ARGUMENT ],
[ '--name', GetoptLong::OPTIONAL_ARGUMENT ]
)
dir = nil
name = nil
repetitions = 1
opts.each do |opt, arg|
case opt
when '--help'
puts "Help here..."
when '--repeat'
repetitions = arg.to_i
when '--name'
if arg == ''
name = 'John'
else
name = arg
end
end
end
if ARGV.length != 1
puts "Missing dir argument (try --help)"
exit 0
end
dir = ARGV.shift
Dir.chdir(dir)
for i in (1..repetitions)
print "Hello"
if name
print ", #{name}"
end
puts
end
示例命令行:
hello -n 6 --name -- /tmp
我个人喜欢trollop,它不包含在标准库中。
完成命令行后,请参阅FileUtils模块以创建目录:
require 'fileutils'
FileUtils.mkdir("dir")
答案 1 :(得分:0)
duncan提到的Getoptlong是ruby核心的一部分,但是有更好的外部库可以让你以更清洁/更简单的方式完成它。
我建议你看看Choice。那里给出的例子应该足以让你前进。