[#49519] OSX ruby-tkのextconf.rb — 天野 竜太郎 <pikara-giresse82@...>

=1B$BE7Ln$H$$$$$^$9!#=1B(B

13 messages 2013/08/01

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

尾川と申します。

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

=EF=BC=9E=E3=82=B9=E3=82=AF=E3=83=AA=E3=83=97=E3=83=88=E5=90=8D=E3=81=AB=E7=

[#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:49538] Re: コマンドラインで ruby の変数に値を設定する方法

From: 尾川敏也 <ogw@...>
Date: 2013-08-11 02:14:07 UTC
List: ruby-list #49538
尾川です。

リプライありがとうございました。

古川さん wrote:
>> スクリプト名に続く, `-'で始まる引数を解釈して, 同名のグローバル
>> 変数に値を設定します。
>
> #! /bin/ruby -s
> print "x is #{$x}\n" if $x
> 
> こういうプログラムに対して
> 
> $ ruby test.rb -x=2
> x is 2

-s オプションというのはこのように使えるのですね。気付きませんでした。
大変勉強になりました。

その後、スクリプトをファイルに書くのではなく、-e でコマンドラインに
直接書く場合にまた少し躓いたのですが、何とか解決しました。

ruby -s -e 'print "x is #{$x}\n" if $x' -- -x=2

これでうまく行きました。

私の気持ちとしては -x=2 という「オプション」を指定しているのですが、
ruby に対してはコマンドラインオプションとしてではなく、ファイル名等
の一般の引数として扱うよう、-- でコマンドラインオプションの解析を止
めてやる必要があるのですね。

        ***

ちなみに、その場で本当にコマンドラインにタイプして使うのなら、わざ
わざそんなことをしなくてもスクリプトの中で x=2 と書いてしまえばよい
のですが、私が本当にしたかったのは、既存のフィルタプログラムと組み
合わせてシェルスクリプトの中で使うことでした。

イメージ的に書くと、myprog1, myprog2 を既存のフィルタプログラムとし
て:

--------------------------------------
#!/bin/sh

datafile=$1
param=$2

cat $datafile           |\
myprog1                 |\
ruby -s -wnla -e '
#
# param の値を使う
# それなりのボリュームの
# ruby スクリプト
#
' -- -param=$param      |\
myprog2
--------------------------------------

みたいな感じです。

これまでは上記の ruby -s の部分を awk -v で処理していたのですが、
最近一念発起して勉強し始めた ruby に少しでも多く触れられるように、
日常的に使ってきた awk を ruby に置き換えようとしているところです。

ともあれ、アドバイス頂き、ありがとうございました。

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

In This Thread