Learn R Programming

base (version 3.4.0)

shell: Invoke a System Command, using a Shell

Description

shell runs the command specified by cmd, usually under a shell, because that is what the POSIX standards require.

Usage

shell(cmd, shell, flag = "/c", intern = FALSE, wait = TRUE,
      translate = FALSE, mustWork = FALSE, ...)

Arguments

cmd
the system command to be invoked, as a string.
shell
a string giving the name of the shell to be used, or NULL (no shell). If missing, a suitable shell is chosen: see ‘Details’.
flag
the switch to run a command under the shell. If the shell is bash or tcsh or sh the default is changed to "-c".
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.
translate
If TRUE, "/" in cmd is translated to "\".
mustWork
a logical; if TRUE failure to run the command will give an R error, if FALSE a warning and if NA, no R message.
additional arguments to system.

Value

If intern = TRUE, a character vector giving the output of the command, one line per character string, or an error message if the command could not be run. 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 = FALSE the value is the error code returned by the command, and if wait = TRUE it is the zero (the conventional success value), If intern = FALSE and wait = TRUE (the defaults) the text output from a command that is a console application will appear in the R console (Rgui) or the window running R (Rterm).

Details

If no shell is specified, the environment variables R_SHELL and COMSPEC are tried in turn: COMSPEC should always succeed. Using shell = NULL invokes the command cmd directly, in which case an extension of .exe is assumed. It is possible to use batch files directly if their extension is given: Windows (rather than R) then chooses a shell. See system for fuller details: shell is a more user-friendly wrapper for system. To make use of Windows file associations, use shell.exec.

See Also

system, shell.exec