Invoke a System Command, using a Shell

Share:

Description

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

Usage

1
2
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

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.