警告:高齢者にとって、この記事は有用ではないでしょう。 そして、それでさえ有害であることが判明します。 rubyを使用してスクリプトを記述するシステム管理者を強くお勧めします。
コマンドライン引数の解析には、通常GetOptライブラリを使用しました。 これはかなり不便なライブラリであり、
Docoptを偶然
見つけて
うれしく思いました。スタート。
使用を開始するのは非常に簡単です。出力行を解析するようスクリプトに教えるには、最初にライブラリを接続する必要があります。
require 'docopt'
その後、変数を初期化して適切な値を割り当てることができます。
doc =<<EOF Usage:
ここで、変数をパラメーターとして渡すだけです。
begin arguments = Docopt::docopt(doc) rescue Docopt::Exit => e puts e.message exit end
引数が指定されていない場合、または
-hまたは
-helpスイッチを使用してスクリプトが呼び出された
場合 、入力したメッセージが表示されます。
他の場合では、ライブラリ自体が
doc変数から文字列を解析し、すべてをハッシュに入れます。これは既に
arguments変数に割り当てられています。
~/myscript add test argument2 --input=local.txt {"add"=>true, "<opt1>"=>"test", "<opt2>"=>"argument2", "--input"=>"local.txt", "--verbose"=>false, "--help"=>false}
ご覧のとおり、データは便利なハッシュに配置されており、標準のメカニズムを使用してそこから収集できます。
puts arguments["<opt1>"] puts arguments["--input"]
このライブラリを使用すると、オプションの厳密に必要なパラメーターを使用できます。 必須は括弧
()で示され、オプションは四角
[]とりわけ、
Usage行の下にリストすることにより、いくつかの使用基準を導入できます
。 Usage:
Options:行の下で変数のデフォルト値を設定することもできます:
--input=<something> [default: my.txt]
引数[ -input
]ハッシュの値は、特に指定がない限り、my.txtと等しくなります。
トラブルなし-入力を読み取るには、$ stdinチャネルを明示的に使用する必要があります
$stdin.gets.chomp
終わり
実際、これがこのライブラリについて知っておくべきすべてです。