0

RubyのARGVのポイントは何ですか?

first, second, third = ARGV 
puts "The script is called: #{$0}"
puts "Your first variable is: #{first}"
puts "Your second variable is: #{second}"
puts "Your third variable is: #{third}"

私がする必要があるファイルを実行するときのこれのポイントは何ですか:

ruby ex1.rb

1番目、2番目、3番目の変数を入力するには、入力する必要があります

ruby ex1.rb blah blah blah

これは、プログラムを実行しているすべての人にどのようなメリットがありますか?私はそれが実行可能ファイルであると想定しているので、とにかく彼らはそれを行うことができません:

user = ARGV.first
prompt = '> '

puts "Hi #{user}, I'm the #{$0} script."
puts "I'd like to ask you a few questions."
puts "Do you like me #{user}?"
print prompt
likes = STDIN.gets.chomp()

puts "Where do you live #{user}?"
print prompt
lives = STDIN.gets.chomp()

puts "What kind of computer do you have?"
print prompt
computer = STDIN.gets.chomp()

puts <<MESSAGE
Alright, so you said #{likes} about liking me.
You live in #{lives}.  Not sure where that is.
And you have a #{computer} computer.  Nice.
MESSAGE

誰かが私にこれを説明してもらえますか?

4

5 に答える 5

13

、、、またはなどrailsのRuby コマンド ライン ユーティリティを検討してください。これらはいずれもエンドユーザー アプリケーション (Web アプリや GUI アプリなど) ではありませんが、ユーザーが操作する Ruby で記述されたプログラムです。それらはすべて引数を取ります:rakegembundle

$ rails new my_app
$ rake tests
$ gem install rails --no-rdoc --no-ri
$ bundle update

ARGV引数を受け取るこの種のコマンド ライン プログラムを実装するために使用することができます。この目的でOptionParser 標準ライブラリやその他のツールを使用することがよくありますが、ARGV はこれらのツールの上に構築される低レベルのコレクションです。

したがって、、、、、またはRubyで記述されたコマンド ライン開発者ツールを実行したことがある場合はgem、!railsrakebundleARGV

于 2012-11-11T15:09:04.013 に答える
5

要点はARGV、人間の入力なしでスクリプトを実行できるようにし、入力が反復ごとに異なる可能性がある場合にも対応できるようにすることです。

たとえば、3 つの異なるスクリプトを実行して 3 つの値を取得する場合があります。これらの値は、このスクリプトに渡されARGV、これらのオプションの値を取得するために使用できます。

于 2014-02-12T18:01:45.440 に答える
3

以前は、電子メールとパスワードを要求するスクリプトを実行していました。100 のアカウントのうちの 1 つにログインするために使用されました。ほとんどの Ruby スクリプトと同様に、コマンド ラインから実行します。これは、特にクリックするアイコンを持つものではなく、「実行可能ファイル」に似ている必要がありました。

プログラムを実行すると、電子メールとパスワードの入力を求められ、Watir を使用してログインしました。

puts "Email of Account"
account_email = gets.chomp

puts "Enter Password"
password = gets.chomp

# code that logs me in

ただし、ARGV を介してこれらの値を取り込む方が、私の目的にとってははるかに高速であることがわかりました。

account_email, password = ARGV
# code that logs me in

次に、入力するだけです

$ ruby my_script.rb my.email@emailplace.com mypassword

Enterキーを押します。また、コンソールの上向き矢印を押して何度も実行したり、別の名前とパスワードを使用して最近のバージョンを実行したりして、スクリプトをすばやくテストすることもできます。

さらに一歩進んで、このスクリプト、引数、およびすべてをさまざまな組み合わせで実行できるシェルスクリプトを作成しました

ruby my_script.rb oneofmy@emails.com mypassword
ruby my_script.rb another@emails.com otherpassword

最後に、スクリプトを実行するたびに数十の設定を設定し、そのスクリプトを何度も実行する必要がある場合がありました。そのため、コマンドラインからスクリプトに多数の変数を簡単に挿入することもできました

ruby my_script.rb option1 option2 option3 option4

私は ARGV の使用に非常に慣れていないため、より良い使用方法を学びたいと思っていますが、これは非常に便利な機能の 1 つです。

于 2014-11-18T16:38:48.023 に答える