このエントリーをはてなブックマークに追加


パイプで渡されたstdinの有無を確認する方法

ターミナルからパイプで渡された文字列群があるかどうかを確認するRubyサンプルコードを以下に記します。

関連記事


スポンサーリンク

パイプ渡しのstdinの有無確認サンプル

以下、サンプルコードおよび実行例を記します。

#!/usr/bin/env ruby

def isPipe()
  if File.pipe?(STDIN) || File.select([STDIN], [], [], 0) != nil then
    return true
  end
  false
end

if isPipe() then
  puts $stdin.gets();
else
  puts "nothing"
end

実行例

以下に本サンプルを実行したときの出力を記します。

sakura@debian:~$ ruby -v
ruby 2.1.5p273 (2014-11-13) [x86_64-linux-gnu]
sakura@debian:~$ chmod +x ispipe.rb
sakura@debian:~$ ./ispipe.rb
nothing
sakura@debian:~$ echo SAKURA | ./ispipe.rb
SAKURA

以上、Rubyでパイプ渡しのstdinの有無を確認する方法でした。


添付ファイル: fileispipe.rb 54件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-12-07 (水) 21:31:05 (712d)