Rubyからシェルコマンドを呼び出す方法

概要

Ruby プログラム内からシェル コマンドを呼び出すにはどうすればよいですか?これらのコマンドからの出力を Ruby に戻すにはどうすればよいでしょうか?

解決策

この説明は、私の友人からコメントされた Ruby スクリプトに基づいています。スクリプトを改善したい場合は、リンクから自由に更新してください。

まず、Ruby がシェルを呼び出すとき、通常は Bash ではなく /bin/sh を呼び出すことに注意してください。一部の Bash 構文は、すべてのシステムの /bin/sh でサポートされているわけではありません。

シェル スクリプトを実行する方法は次のとおりです。

cmd = "echo 'hi'" # Sample string that can be used

追加のアドバイスをいくつか示します。 0 ( と同じ) は、バックティック、system() または %x{} を使用する場合、システムが最後に実行したコマンドのステータスにアクセスします。 その後、exitstatus プロパティと pid プロパティにアクセスできるようになります。

$?.exitstatus

詳細については、以下を参照してください。