自由気ままなITメモログ

パソコン、サーバー、モバイル関連等の情報・Tipsを、不定期で綴るメモ集です。

外部コマンド実行いろいろ

Rubyのお勉強中。とてもフリーダムな言語だということはわかった!
PHP並に好きになっちゃうかもしれない。

今回は、Rubyから外部コマンド実行をするための方法をいくつか。

シンプルな外部コマンド実行(バッククォート利用)

`ls`

コマンド名を、バッククォートで括るだけ。標準出力を貰う場合は、

output = `ls`

って具合にすればOK。

なお、コマンドをRubyの変数としたい場合、
グローバル変数を用いると良い感じらしい。

$cmd = 'ls hogehoge'
output = `#$cmd`

標準エラー出力が欲しい場合の外部コマンド実行(上記バッククォート利用)

シェル依存だが、リダイレクトを用いて、bash系なら

`ls 2>&1`

とすれば、標準エラー出力が、標準出力にリダイレクトして出力される。
標準エラー出力単体が欲しい場合は、この方法は向かない。

標準エラー出力が欲しい場合の外部コマンド実行(各種ライブラリ利用)

現在勉強中。。。うまい具合に、標準エラー出力を取得できない。うーむ。