2016-11-28 48 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