- 追加された行はこの色です。
- 削除された行はこの色です。
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
したがって最終的に
#!/usr/bin/env ruby
cmd = "bmeps"
if open("| which #{cmd} 2>/dev/null"){|f| f.gets}
bmeps file.png file.eps
else
convert file.png file.eps
end
となります.