人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ruby に関する質問です。
コマンドライン引数とリダイレクトをあわせるとうまくいかないようです。

temp.1 というファイルに

inu
neko
tanuki

をいれて
t.rb に
puts ARGV
while gets
puts $_
end
というスクリプトを書きます。

cat temp.1 |ruby t.rb

inu
neko
tanuki

と出力されます。

cat temp.1 |ruby t.rb 1
とすると

t.rb:2:in `gets': No such file or directory - 1 (Errno::ENOENT)
from t.rb:2

なります。

引数があると、リダイレクトは受けとれないのでしょうか?




●質問者: isogaya
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:ARGV GETS INU Ruby コマンドライン
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● しおり
●60ポイント ベストアンサー

gets の使い方を間違っているだけです。

組み込み関数 - Rubyリファレンスマニュアル:

gets([rs])

readline([rs])

Ruby インタプリタ実行時に引数として与えられたファイル(なければ標準入力)をつなげた仮想的なファイル(組み込み変数 $< や ARGF でアクセスできる) から一行読み込んで、文字列を返します。


標準入力だけから入力したいなら、gets ではなく $stdin.gets などとする必要があります。

◎質問者からの返答

ばっちりです。ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ