spawnShell

A variation on spawnProcess that runs the given command through the current user's preferred command interpreter (aka. shell).

The string command is passed verbatim to the shell, and is therefore subject to its rules about command structure, argument/filename quoting and escaping of special characters. The path to the shell executable defaults to nativeShell.

In all other respects this function works just like spawnProcess. Please refer to the spawnProcess documentation for descriptions of the other function parameters, the return value and any exceptions that may be thrown.

// Run the command/program "foo" on the file named "my file.txt", and
// redirect its output into foo.log.
auto pid = spawnShell(`foo "my file.txt" > foo.log`);
wait(pid);
  1. Pid spawnShell(const(char)[] command, File stdin, File stdout, File stderr, string[string] env, Config config, const(char)[] workDir, string shellPath)
  2. Pid spawnShell(const(char)[] command, string[string] env, Config config, const(char)[] workDir, string shellPath)
    @trusted
    spawnShell
    (
    scope const(char)[] command
    ,
    scope const string[string] env
    ,,
    scope const(char)[] workDir = null
    ,
    scope string shellPath = nativeShell
    )

See Also

escapeShellCommand, which may be helpful in constructing a properly quoted and escaped shell command line for the current platform.

Meta