外部コマンドを実行する方法

  • `...` / %x{...}
  • Kernel.#system
  • Kernel.#spawn
  • IO.popen
  • Open3.capture3
  • Open3.popen3
  • systemu

参考:

Ruby で外部コマンドを実行して結果を受け取る方法あれこれ – Qiita

Ruby で外部コマンドを実行する方法 | Aqutras Members’ Blog

Ruby から外部コマンドを実行するときは system や Open3 に可変長引数で渡すのが便利 | ブログのおんがえし

Ruby から外部プログラムを起動 | None is None is None

Ruby でシェルコマンドを実行する方法 | ぺけみさお

Ruby からシェルコマンドを実行する (Kernel.#system ..etc) | kikeda1104’s blog

ruby で外部コマンド実行 | DoRuby

Executing shell script from Ruby code | The Lazy Log

Different ways to run Shell Commands in Ruby | Red Panthers

バッククォート / %x リテラル

コマンドを実行して、標準出力を文字列として返す。

参考:

Ruby “execute shell command” examples | alvinalexander.com

module function Kernel.#` (Ruby 2.7.0)

コマンド出力 (Ruby 2.7.0)

Kernel.#system

コマンドを実行して、成功 (終了ステータスが 0) の場合は true を返し、失敗 (0 以外) の場合は false を返す。

参考:

module function Kernel.#system (Ruby 2.7.0)

Kernel.#spawn

参考:

Ruby の Spawn (別プロセスの起動) について | 酒と涙とRubyとRailsと

ruby の spawn で起動したプロセスを、終了待ちしたり、強制終了したり、親プロセスと一緒に殺す | それマグで!

module function Kernel.#spawn (Ruby 2.7.0)

IO.popen

参考:

singleton method IO.popen (Ruby 2.7.0)

Process substitution (not command substitution) in Ruby – Stack Overflow

Process.wait / Process.wait2

プロセスの終了を待つ

参考:

module function Process.#wait (Ruby 2.7.0)

シェルコマンドを実行する

参考:

Ruby でシェルコマンドを実行する方法 | ぺけみさお

Ruby からシェルコマンドを実行する (Kernel.#system ..etc) | kikeda1104’s blog

How to call shell commands from Ruby – Stack Overflow

シェルでプロセス置換を実行する

参考:

How to call bash (not shell) from ruby | Sergey Potapov

Running shell commands from Ruby | Shiroyasha

Process substitution (not command substitution) in Ruby – Stack Overflow

Shellwords.escape

シェルのコマンドライン引数として与えられるように文字列をエスケープする。

greeting = Shellwords.escape("hello,\nworld")
system("echo #{greeting}")

参考:

singleton method Shellwords.escape (Ruby 2.7.0)

Shellwords.escape をアンエスケープする

バッククォートと echo を使う。

str = Shellwords.escape("{ key: \"value\" }")
puts `echo #{str}`

他の Ruby スクリプトを実行する

参考:

Calling another Ruby script | Ruby-Forum

Running another ruby script from a ruby script – Stack Overflow

管理者権限でコマンドを実行する

参考:

How to run the commands in Ruby as a root – Stack Overflow

Run ruby script in elevated mode – Stack Overflow

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA