shell {base} | R Documentation

## Invoke a System Command, using a Shell

### Description

`shell` runs the command specified by `cmd`, usually under a shell.

### 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` 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.
`...` | additional arguments to `system`.

### Details

If no `shell` is specified, the environment variables `R_SHELL`, `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`.

### 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`).

### See Also

`system`, `shell.exec`

[Package base version 2.3.1 Index]