RSS RSS
yaのログ
2009.05.31
カテゴリ:ruby

rubyで外部コマンド実行

rubyからOSのコマンドやシェルなどの、外部コマンドを

実行する方法としていくつかあるようですので簡単にご紹介します。

バッククォートを使う

#!/usr/bin/ruby

result = `ls -lh`

単純な実行ならコレ。


system

#!/usr/bin/ruby

result = system("ls -lh")

print result

結果に真偽値が返ってきます。


exec

#!/usr/bin/ruby

begin

exec("ls -lh")

rescue

puts "error"

end

Kernelモジュール内。rescueでrubyの例外を拾えるのが特徴。


open

#!/usr/bin/ruby

result = open("| ls -lh")

print result.class # => IO

while !result.eof

print result.gets

end

result.close

ファイルのIOを行うときにopenを使いますが

引数のコマンドの前に「|」パイプを付けると、外部コマンドの実行が可能になります。



実行される外部コマンドの処理を非同期実行や子プロセスにするかなど、

の考慮が必要になりますので、要件に応じて使いわけると良いでしょう。

その他、open3やpopenを使うなど方法もあります。

環境:ruby 1.8.6

ブックマークに追加する

.
web開発ならAppirits
Rubyでのwebシステム開発は
実績豊富なAppiritsにお任せ下さい
iPhone開発
iPhone開発は
Appiritsにお任せ下さい
ブラウザゲーム エインヘリアル
ブラウザゲーム「エインへリアル」
サービス中
オープンソースECパッケージ エレコマ
オープンソースECパッケージ
「エレコマ」
Google Analytics徹底活用スクール
レベルに合わせた
実用的な活用スキルを徹底指導。
好評定期開催中です!

プロフィール

ya
ya

最近チェックした記事

最新記事

アーカイブ

アクセスランキング

AppiritsのWebソリューション
Ruby on railsの開発ならAppirits
株式会社ケイビーエムジェイ