shell {base} | R Documentation

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

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

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

### Note

This function exists only on Windows: on all other platform `system` uses a shell.

### See Also

`system`, `shell.exec`

[Package base version 3.6.0 Index]