process-1.0.1.5: Process libraries

Portability | portable
Stability | provisional
Maintainer | libraries@haskell.org

System.Cmd

Description

Executing an external command.

This module provides a simple interface for executing external commands. For a more complex, but more powerful, interface, see the System.Process module.

Synopsis

- system :: String -> IO ExitCode
- rawSystem :: String -> [String] -> IO ExitCode

# Documentation

system :: String -> IO ExitCode

Computation `system cmd` returns the exit code produced when the operating system runs the shell command `cmd`.

This computation may fail with

- `PermissionDenied`: The process has insufficient privileges to perform the operation.
- `ResourceExhausted`: Insufficient resources are available to perform the operation.
- `UnsupportedOperation`: The implementation does not support system calls.

On Windows, `system` passes the command to the Windows command interpreter (`CMD.EXE` or `COMMAND.COM`), hence Unixy shell tricks will not work.

rawSystem :: String -> [String] -> IO ExitCode

The computation ``rawSystem` cmd args` runs the operating system command `cmd` in such a way that it receives as arguments the `args` strings exactly as given, with no funny escaping or shell meta-syntax expansion. It will therefore behave more portably between operating systems than `system`.

The return codes and possible failures are the same as for `system`.