2016-11-28 2 views
0

Donc, je sais comment utiliser optparser pour utiliser la ligne de commande pour appeler une méthode spécifique dans mon programme. Mais, est-il un moyen d'utiliser optparse où l'utilisateur est requis de spécifier un fichier pour que la commande fonctionne? Comme par exemple lors de l'utilisation de ce code:Exiger l'appel d'un fichier à partir de la ligne de commande

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

L'utilisateur doit spécifier un fichier spécifique que le programme doit lire.

test.rb -b test.txt 

Y at-il un moyen de le faire ou suis-je encore trop nouveau pour ruby ​​pour comprendre comment cela fonctionne?

+0

'ARGV' peut être votre ami. –

+0

ARGV? Je suis tombé sur cela à quelques reprises mais je n'ai pas encore compris comment cela fonctionne. Pourriez-vous me donner un exemple? – yukimoda

Répondre

1

Je ne sais pas optparse, mais vous pouvez faire quelque chose comme ça peut-être:

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

exécuter le fichier en ligne de commande, en passant le nom de fichier comme argument. Où ARGV [0] correspond au premier argument passé:

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

Et cela fonctionnera avec n'importe quel type de fichier, non? Je suis désolé si je viens d'être lent, mais comme je l'ai mentionné avant, je ne sais pas comment ARGV fonctionne. – yukimoda

+0

Oui, cela fonctionnera pour n'importe quel fichier. Dans la réponse ci-dessus, je viens de choisir le fichier de script lui-même. Essayez-le avec un autre fichier et voyez, si vous suivez l'exemple ci-dessus, assurez-vous simplement que le fichier en cours de lecture se trouve dans le même répertoire que le script. –

+0

Je le ferai, merci beaucoup! – yukimoda