【发布时间】:2014-02-15 11:41:12
【问题描述】:
我正在尝试编写一个脚本,该脚本将从主机文件中获取 IP 地址,并从配置文件中获取用户名信息。我显然没有将文件名作为正确的哈希/值。
我的File.new(options[:config_file], 'r').each { |params| puts params } 应该打什么电话?我也尝试过当前设置的内容,并且
File.new(config_file, 'r').each { |params| puts params } 和 File.new(:config_file, 'r').each { |params| puts params } 没有运气。
我应该一起做一些不同的事情吗?喜欢load(filename = nil)?
options = {}
opt_parser = OptionParser.new do |opt|
opt.banner = 'Usage: opt_parser COMMAND [OPTIONS]'
opt.on('--host_file','I need hosts, put them here') do |host_file|
options[:host_file] = host_file
end
opt.on('--config_file', 'I need config info, put it here') do |config_file|
options[:config_file] = config_file
end
opt.on('-h', '--help', 'What your looking at') do |help|
options[:help] = help
puts opt
end
end
opt_parser.parse!
if options[:config_file]
File.new(options[:config_file], 'r').each { |params| puts params }
end
if options[:host_file]
File.new(options[:host_file], 'r').each { |host| puts host }
end
【问题讨论】:
-
您的文件是什么格式的?我会像这样直接使用 YAML 或 CSV。 YAML 为您提供哈希。从 CSV 你可以得到一个哈希值。
-
现在只是标准的 txt 文件,但我对选项持开放态度。主机文件只是 IP 地址(或主机名),每行一个。配置文件是用户名=un,密码=pw,每行一个。我也不喜欢将密码存储在明文文件中,但我不确定在这方面我还能做什么。
标签: ruby