In Proc§
See primary documentation in context for method shell
method shell($cmd, :$cwd = $*CWD, :$env --> Bool:D)
Runs the Proc
object with the given command and environment which are passed through to the shell for parsing and execution. See shell
for an explanation of which shells are used by default in the most common operating systems.
In Independent routines§
See primary documentation in context for sub shell
multi shell($cmd, :$in = '-', :$out = '-', :$err = '-', Bool :$bin, Bool :$chomp = True, Bool :$merge, Str :$enc, Str:D :$nl = "\n", :$cwd = $*CWD, :$env)
Runs a command through the system shell, which defaults to %*ENV<ComSpec> /c
in Windows, /bin/sh -c
otherwise. All shell metacharacters are interpreted by the shell, including pipes, redirects, environment variable substitutions and so on. Shell escapes are a severe security concern and can cause confusion with unusual file names. Use run if you want to be safe.
The return value is of type Proc.
shell 'ls -lR | gzip -9 > ls-lR.gz';
See Proc
for more details, for example on how to capture output.