system {base} | R Documentation |
system
invokes the system command specified by command
.
system(command, intern = FALSE, wait = TRUE, input = NULL, show.output.on.console = FALSE, minimized = FALSE, invisible = FALSE)
command |
the system command to be invoked, as a string. |
intern |
a logical, indicates whether to make the output of the command an R object. |
wait |
should the R interpreter wait for the command to finish?
The default is to wait, and the interpreter will always wait if
intern = TRUE . |
input |
if a character vector is supplied, this is copied one
string per line to a temporary file, and the standard input of
command is redirected to the file. |
show.output.on.console |
a logical, indicates whether to capture
the output of the command and show it on the R console (not used
by Rterm , which captures the output unless wait
is false). |
minimized |
a logical, indicates whether the command window should be initially displayed as a minimized window. |
invisible |
a logical, indicates whether the command window should be visible on the screen. |
cmd
is parsed as a command plus arguments separated by spaces.
So if the path to the command contains spaces, it must be
(double-)quoted. See the examples. (Note: a Windows path name cannot
contain a double quote, so we do not need to worry about escaping
embedded quotes.)
The command is run directly as a Windows command by the Windows API
call CreateProcess
: extensions of .exe
, .com
,
.cmd
and .bat
are tried in turn if none
is supplied. (To use DOS internal commands use
paste(Sys.getenv("COMSPEC"),"/c",cmd)
.)
The search path for command
may be system-dependent: it will include the R bin
directory, the working directory and the Windows system directories
before PATH
.
Precisely what is seen by the user depends on whether Rgui
or
Rterm
is being used. For Rgui
a new console will
always be used, so a commands window will appear for the duration of
console applications unless invisible
is true. For
Rterm
a separate commands window
will appear for console applications only if wait = FALSE
.
unix
is a deprecated alternative, available for
backwards compatibility.
If intern = TRUE
, a character vector giving the output of the
command, one line per character string. If the command could not be
run or gives an error a R error is generated. (Output lines of more
than 8095 characters will be split.)
If intern = FALSE
, the return value is an error code, given the
invisible attribute (so needs to be printed explicitly). If the
command could not be run for any reason, the value is -1
and
an R warning is generated. Otherwise if wait = TRUE
the value
is the error code returned by the command, and if wait = FALSE
it is the zero (the conventional success value),
If intern = FALSE
and show.output.on.console = TRUE
the text output from a command that is a console application will
appear in the R console (Rgui
) or the window running R
(Rterm
).
The command cannot be interrupted by the R process.
Do not run console applications that require user
input from Rgui
setting intern = TRUE
and/or
show.output.on.console = TRUE
. They will not work,
may hang and then will probably hang Rgui
too.
shell
or shell.exec
for a less raw
interface.
# launch an editor, wait for it to quit ## Not run: system("notepad myfile.txt") # launch a Windows 9x process monitor (from Win9x KernelToys) ## Not run: system("wintop", wait = FALSE) # launch your favourite shell: ## Not run: system(Sys.getenv("COMSPEC")) ## Not run: ## note the two sets of quotes here: system(paste('"c:/Program Files/Mozilla Firefox/firefox.exe"', '-url cran.r-project.org'), wait = FALSE) ## End(Not run)