2016-11-28 9 views
0

Так что я знаю, как использовать optparser для использования командной строки для вызова определенного метода в моей программе. Но есть ли способ использовать optparse, где пользователь должен указать файл, чтобы команда работала? Например, при использовании этого кода:Требовать файл для вызова из командной строки

test.rb  
#!/usr/bin/ruby 
read = File.readlines(file) 
puts read 

Пользователь должен указать конкретный файл, который программа должна прочитать.

test.rb -b test.txt 

Есть ли способ сделать это, или я еще слишком новичок в рубине, чтобы полностью понять, как это работает?

+0

'ARGV' может быть вашим другом. –

+0

ARGV? Я столкнулся с этим пару раз, но мне еще предстоит понять, как это работает. Не могли бы вы привести мне пример? – yukimoda

ответ

1

Я не знаю, о optparse, но вы можете сделать что-то подобное возможно:

#test.rb  
#!/usr/bin/ruby 
file = ARGV[0] 
read = File.readlines(file) 
puts read 

затем запустить файл в командной строке, передавая имя файла в качестве аргумента. Где ARGV [0] соответствует первому переданному аргументу:

$ ruby test2.rb test2.rb 
##test.rb  
##!/usr/bin/ruby 
#file = ARGV[0] 
#read = File.readlines(file) 
#puts read 
+0

И это будет работать с любым файлом, не так ли? Прошу прощения, если я нахожусь медленным, но, как я уже говорил, я не знаю, как работает ARGV. – yukimoda

+0

Да, он будет работать для любого файла. В ответе выше я просто выбрал сам файл сценария. Попробуйте его с другим файлом и посмотрите, если, следуя приведенному выше примеру, просто убедитесь, что прочитанный файл находится в том же каталоге, что и скрипт. –

+0

Я буду, большое вам спасибо! – yukimoda