OSのコマンドをRubyから実行する
tips_02
OSのコマンドをRubyから実行する
困ったこと
OSのコマンドや別のツールをRubyから実効する方法が分からん。
前提
- ruby 1.9.2p320
- コマンドの終了ステータスを受け取る必要あり
解決策
systemメソッドを用意する。(lsコマンドを例にとる)
command.rb
# coding: utf-8
puts "ls -lを実行します"
system("ls -l ./command.rb") # 存在するファイル(正常終了)
status = $?.exitstatus # => 0
puts "終了コード : #{status}"
puts "ls -lを実行します"
system("ls -l ./command.none") # 存在しないファイル(異常終了)
status = $?.exitstatus # => 1
puts "終了コード : #{status}"
command.log
mba:ipass 7010oncajon$ ruby command.rb
ls -lを実行します
-rw-r--r--@ 1 7010oncajon staff 377 8 27 23:39 ./command.rb
終了コード : 0
ls -lを実行します
ls: ./command.none: No such file or directory
終了コード : 1
感想
- とても便利
- やり方は他にもあるようだ、