Method: Kernel#`
- Defined in:
- io.c
#` ⇒ String
Returns the $stdout
output from running command
in a subshell; sets global variable $?
to the process status.
This method has potential security vulnerabilities if called with untrusted input; see Command Injection.
Examples:
$ `date` # => "Wed Apr 9 08:56:30 CDT 2003\n"
$ `echo oops && exit 99` # => "oops\n"
$ $? # => #<Process::Status: pid 17088 exit 99>
$ $?.status # => 99>
The built-in syntax %x{...}
uses this method.
10620 10621 10622 10623 10624 10625 10626 10627 10628 10629 10630 10631 10632 10633 10634 10635 10636 10637 10638 10639 |
# File 'io.c', line 10620 static VALUE rb_f_backquote(VALUE obj, VALUE str) { VALUE port; VALUE result; rb_io_t *fptr; StringValue(str); rb_last_status_clear(); port = pipe_open_s(str, "r", FMODE_READABLE|DEFAULT_TEXTMODE, NULL); if (NIL_P(port)) return rb_str_new(0,0); GetOpenFile(port, fptr); result = read_all(fptr, remain_size(fptr), Qnil); rb_io_close(port); rb_io_fptr_cleanup_all(fptr); RB_GC_GUARD(port); return result; } |