[#49536] コマンドラインで ruby の変数に値を設定する方法 — 尾川敏也 <ogw@...>

尾川と申します。

31 messages 2013/08/09
[#49537] Re: コマンドラインで ruby の変数に値を設定する方法 — 古川大輔 <mogya99@...> 2013/08/09

>スクリプト名に続く, `-'で始まる引数を解釈して, 同名のグローバル変数に値 を設定します。

[#49538] Re: コマンドラインで ruby の変数に値を設定する方法 — 尾川敏也 <ogw@...> 2013/08/11

尾川です。

[#49539] Re: コマンドラインで ruby の変数に値を設定する方法 — Nobuyoshi Nakada <nobu@...> 2013/08/11

(13/08/11 11:14), 尾川敏也 wrote:

[#49596] シェルスクリプトの Ruby での置き換え (was Re: コマンドラインで ruby の変数に値を設定する方法) — 尾川敏也 <ogw@...> 2013/09/21

尾川と申します。おはようございます。

[#49598] IO.popen に不具合? — 尾川敏也 <ogw@...> 2013/09/24

たびたびお騒がせします。尾川と申します。

[#49611] IO.popen の不審な挙動を再現するサンプルコード — 尾川敏也 <ogw@...> 2013/09/28

尾川です。

[ruby-list:49541] Re: コマンドラインで ruby の変数に値を設定する方法

From: 尾川敏也 <ogw@...>
Date: 2013-08-11 04:33:32 UTC
List: ruby-list #49541
尾川です。

アドバイスありがとうございます。

Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
> > cat $datafile           |\
> > myprog1                 |\
> 
> ここは | で次の行に続くことが明らかなので \ はなくて済みますし、
>   myprog1 < "$datafile" |
> と直接リダイレクトでも同じはずです。

はい。昔からの癖でして。お恥ずかしい (^^;

> それなりのボリュームがあるなら、全体をrubyスクリプトに
> してもいいかもしれません。

はい。それも考えています。

移植性が下がるどころか、UNIX Workstation 時代からの資産をこの先も 
Windows で使い続けることを考えると、今とりあえず使っている Cygwin
の sh より、Ruby に面倒をみてもらった方が最終的には便利かもしれない
なぁ、と。

少し本を読んだ程度ですが、sh と同じように Ruby でもヒアドキュメント
やコマンドの出力のバッククォートによる取り込みも使えるようですし。

幸い、既存の個々のフィルタプログラムは Windows でもコンパイルできる
ようにしてありますので、そちらの心配はありませんし。

ただ、長年シェルスクリプトに馴染んできて、おまけに Ruby 初心者の身
としては、いきなり全部 Ruby で書くと、どうもとってつけたように回り
くどくなりそうな気もして、二の足を踏んでいます。

が、まぁ、おいおいと考えたいと思います。

>   #!/usr/local/bin/ruby -swnla
>   BEGIN {
>     datafile, $param = *ARGV
>     $stdin.reopen(IO.popen("myprog1", "r", in: datafile))
>     $stdout.reopen(IO.popen("myprog2", "w"))
>   }
>   # $param の値を使うruby スクリプト

なるほど、こういう方法もあるんですね。私は Kernel.system メソッドと
やらを使うことくらいしかイメージしていませんでしたので、勉強になり
ます。

いろいろとありがとうございました。

-- 
尾川敏也 ogw@shizuokanet.ne.jp
http://www6.shizuokanet.ne.jp/ogw/

In This Thread