Ruby The Hard Way练习13 ARGV无法在PowerShell中运行

时间:2016-05-12 06:49:24

标签: ruby powershell learn-ruby-the-hard-way

我正在使用:

  • ruby​​ 2.2.4p230(2015-12-16修订版53155)[x64-mingw32]
  • Notepad ++
  • Windows上的PowerShell v.1.0

当我在PowerShell中运行以下代码时:

first, second, third = ARGV

puts "Your first variable is: #{first}"
puts "Your second variable is: #{second}"
puts "Your third variable is: #{third}"

我明白了:

Your first variable is:
Your second variable is:
Your third variable is:

我尝试使用ARGV复制下一个练习中的代码,并且我得到了同样的错误。

我很乐意继续前进,但如果它不起作用,我会被困在这本书或下一本书中。 谢谢你的时间!

1 个答案:

答案 0 :(得分:1)

我认为您的问题是您在命令行调用中执行了 NOT 脚本参数。 ARGV的重点是在命令行中使用参数调用脚本,以便脚本可以使用这些参数。你可以在这里找到更多关于ARGV的信息:What's the point of ARGV in Ruby?

在ubuntu中运行时,我得到了一个好结果:

$ ruby file.rb foo bar baz
Your first variable is: foo
Your second variable is: bar
Your third variable is: baz

所以,我的解决方案是在powershell中使用参数执行脚本(因为否则它们是空的,给出你得到的结果):

ruby your_file.rb foo bar baz

有关信息,我的Ubuntu版本(您的脚本完美运行)是:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.4 LTS
Release:    14.04
Codename:   trusty