Wolfram Research

SystemShellRun

Contributed by: Richard Hennigan (Wolfram Research)

Source Notebook

Run a command on the current system shell

ResourceFunction["SystemShellRun"]["command"]

runs the specified command in the current $SystemShell, returning information on the outcome.

ResourceFunction["SystemShellRun"][command,"prop"]

returns only the specified property.

Details and Options

ResourceFunction["SystemShellRun"] blocks until the process it starts has finished.
Typical possible properties to return include:
"ExitCode" the exit code for the process
"StandardOutput" data sent to standard output, as a string
"StandardError" data sent to standard error, as a string
All an association of all properties (default)
ResourceFunction["SystemShellRun"] has the following options:
ProcessDirectory Inherited initial working directory
ProcessEnvironment Inherited environment variables to supply
By default, the subprocess will inherit its process directory and environment variables from the Wolfram Engine.

Examples

Basic Examples

Run an external command in the current $SystemShell:

In[1]:=
ResourceFunction["SystemShellRun"]["echo hello world"]
Out[1]=

Run a command, and get back only what it writes to the standard output channel:

In[2]:=
ResourceFunction[
 "SystemShellRun"]["echo hello world", "StandardOutput"]
Out[2]=

Run a command, and get back only its exit code:

In[3]:=
ResourceFunction["SystemShellRun"]["fail", "ExitCode"]
Out[3]=
In[4]:=
ResourceFunction["SystemShellRun"]["echo hello world", "ExitCode"]
Out[4]=

Get multiple properties:

In[5]:=
ResourceFunction[
 "SystemShellRun"]["fail", {"ExitCode", "StandardError"}]
Out[5]=

Properties and Relations

SystemShellRun is a cross-platform shortcut for using RunProcess with $SystemShell:

In[6]:=
ResourceFunction["SystemShellRun"]["echo hello world"]
Out[6]=
In[7]:=
RunProcess[{$SystemShell, If[StringContainsQ[$OperatingSystem, "Windows"], "/c", "-c"], "echo", "hello", "world"}]
Out[7]=

Resource History

See Also