Mini Shell
--- !ruby/object:RI::MethodDescription
aliases: []
block_params: ""
comment:
- !ruby/struct:SM::Flow::P
body: "Open stdin, stdout, and stderr streams and start external executable. Non-block form:"
- !ruby/struct:SM::Flow::VERB
body: " require 'open3'\n\n stdin, stdout, stderr = Open3.popen3(cmd)\n"
- !ruby/struct:SM::Flow::P
body: "Block form:"
- !ruby/struct:SM::Flow::VERB
body: " require 'open3'\n\n Open3.popen3(cmd) { |stdin, stdout, stderr| ... }\n"
- !ruby/struct:SM::Flow::P
body: The parameter <tt>cmd</tt> is passed directly to Kernel#exec.
- !ruby/struct:SM::Flow::P
body: _popen3_ is like <em>system</em> in that you can pass extra parameters, and the strings won't be mangled by shell expansion.
- !ruby/struct:SM::Flow::VERB
body: " stdin, stdout, stderr = Open3.popen3('identify', '/weird path/with spaces/and "strange" characters.jpg')\n result = stdout.read\n"
full_name: Open3#popen3
is_singleton: false
name: popen3
params: (*cmd) {|| ...}
visibility: public
Zerion Mini Shell 1.0