我正在编写一个与GitHub环境交互的脚本。对于某些用例,我需要将脚本的范围限制为用户列表,并将其存储在一个换行符分隔的文件中。我希望将用户列表的 filename 作为参数传递给脚本,并将文件名的字符串存储在一个变量中,然后在脚本中使用该变量通过其文件名打开/处理用户列表文件。
我的问题是严格地正确输入和存储文件名。假设用户列表在一个名为“user-list”的文件中,它包含以下文本:
user1
user2
user3
字符串
我想把文件名(“user-list”)存储在一个变量中,但我实际上存储的是一个用户列表([“user 1”,“user 2”,“user 3”])。
我觉得我在这里遗漏了一些非常明显的东西,但是我在documentation for OptionParser或其他Ruby文档中找不到任何相关的东西。我也是一个相当新的Ruby用户,正在使用现有的代码库,所以如果有更好的方法来做到这一点,我还不知道。
下面是我正在使用的代码片段:
# Initialize options OpenStruct
options = OpenStruct.new
...
# Parse arguments
option_parser = OptionParser.new do |opts|
...
opts.on("-u", "--user-file USER_FILE", String,
"Read users from a file. File should be newline separated.") do |user_file|
# FIXME: This doesn't work
# Check if the file exists
#unless File.exist?(user_file)
# puts "File not found: #{user_file}"
# exit
#end
options.user_file = user_file
# FIXME: Testing what was stored
puts options.user_file
end
...
option_parser.parse!(ARGV)
型
下面是我传递到脚本中的内容:
./my_script -u user-file
型
文件“user-file”存在,其内容为:
user1
user2
user3
型
我试图将字符串“user-file”存储在变量user_file
中,但实际上我存储的是列表[“user 1”,“user 2”,“user 3”]。
2条答案
按热度按时间62o28rlo1#
这就是你提到的代码,它对我有效。
字符串
o75abkj42#
经过进一步的挖掘,我发现我的问题与OptionParser或Ruby无关,问题实际上是由一个 Package 器脚本评估的文件。