Description Usage Arguments Details Value Note See Also
View source: R/unix/system.unix.R View source: R/windows/system.R
system2
invokes the OS command specified by command
.
1 2 3 4 |
command |
the system command to be invoked, as a character string. |
args |
a character vector of arguments to |
stdout, stderr |
where output to ‘stdout’ or
‘stderr’ should be sent. Possible values are |
stdin |
should input be diverted? |
input |
if a character vector is supplied, this is copied one
string per line to a temporary file, and the standard input of
|
env |
character vector of name=value strings to set environment variables. |
wait |
a logical (not |
minimized, invisible |
arguments that are accepted on Windows but ignored on this platform, with a warning. |
Unlike system
, command
is always quoted by
shQuote
, so it must be a single command without arguments.
For details of how command
is found see system
.
On Windows, env
is only supported for commands such as
R
and make
which accept environment variables on
their command line.
Some Unix commands (such as some implementations of ls
) change
their output if they consider it to be piped or redirected:
stdout = TRUE
uses a pipe whereas stdout =
"some_file_name"
uses redirection.
Because of the way it is implemented, on a Unix-alike stderr =
TRUE
implies stdout = TRUE
: a warning is given if this is
not what was specified.
If stdout = TRUE
or stderr = TRUE
, a character vector
giving the output of the command, one line per character string.
(Output lines of more than 8095 bytes will be split.) If the command
could not be run an R error is generated. If command
runs but
gives a non-zero exit status this will be reported with a warning and
in the attribute "status"
of the result: an attribute
"errmsg"
may also be available.
In other cases, the return value is an error code (0
for success), given the invisible attribute (so needs to be printed
explicitly). If the command could not be run for any reason, the
value is 127
. Otherwise if wait = TRUE
the value is the
exit status returned by the command, and if wait = FALSE
it is
0
(the conventional success value).
system2
is a more portable and flexible interface than
system
, introduced in R 2.12.0. It allows redirection
of output without needing to invoke a shell on Windows, a portable way
to set environment variables for the execution of command
, and
finer control over the redirection of stdout
and stderr
.
Conversely, system
(and shell
on Windows) allows the
invocation of arbitrary command lines.
There is no guarantee that if stdout
and stderr
are both
TRUE
or the same file that the two streams will be interleaved
in order. This depends on both the buffering used by the command and
the OS.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.