コマンドが存在するか調べる のバックアップ差分(No.1)


 Rubyプログラムからコマンドを起動するには system 関数を使うのが簡単です.mv など,起動したいコマンドが必ず存在するであろう場合は直接 system 関数で呼び出せばいいですが,コマンドがあるかどうが微妙な場合は,まず存在するかどうかを調べて条件分岐させるのがいいでしょう.
 
 たとえば,Rubyスクリプト中でpng画像をEPSファイルに変換したいとします.convert コマンドはたいてい存在しているでしょうが,bmeps コマンドはシステムにあるかどうか分かりません.この場合
 
 - bmeps コマンドが存在すれば bmeps を実行
 - 存在しなければ convert を実行
 
 という条件分岐になります.
 
  #!/usr/bin/env ruby
  
  cmd = ARGV.shift
  
  if open("| which #{cmd} 2>/dev/null"){|f| f.gets}
    puts "exist"
  else
    puts "not exist"
  end
 
Valid XHTML 1.1! home >
トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
Modified by 物理のかぎプロジェクト PukiWiki 1.4.5_1 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-jiPowered by PHP 5.3.29HTML convert time to 0.002 sec.