#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の有無を確認する方法でした。