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

  • `...` / %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.6.0)

コマンド出力 – リテラル (Ruby 2.6.0)

Kernel.#system

参考:

module function Kernel.#system (Ruby 2.5.0)

Kernel.#spawn

参考:

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

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

module function Kernel.#spawn (Ruby 2.5.0)

IO.popen

参考:

singleton method IO.popen (Ruby 2.6.0)

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

Process.wait/Process.wait2

プロセスの終了を待つ

参考:

module function Process.#wait (Ruby 2.5.0)

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

参考:

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.6.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

Tagged:

コメントを残す

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