#navi(../)
* パイプで渡されたstdinの有無を確認する方法 [#l018a707]
ターミナルからパイプで渡された文字列群があるかどうかを確認するRubyサンプルコードを以下に記します。

#contents

* 関連記事 [#cb7d9c74]
-[[Pythonでパイプで渡されたstdinの有無を確認する方法>Python/サンプル/パイプで渡されたstdinの有無を確認する方法]]

#htmlinsertpcsp(ll-top.html,ll-sp.html)


* パイプ渡しのstdinの有無確認サンプル [#c2004219]
以下、サンプルコードおよび実行例を記します。
#ref(ispipe.rb)

 #!/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

* 実行例 [#g68ffef9]
以下に本サンプルを実行したときの出力を記します。
 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の有無を確認する方法でした。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS