在 Proc 中§

有关 方法 shell,请参阅 上下文中的主要文档

method shell($cmd:$cwd = $*CWD:$env --> Bool:D)

使用给定的命令和环境运行 Proc 对象,这些命令和环境通过 shell 传递以进行解析和执行。有关在最常见的操作系统中默认使用哪些 shell 的说明,请参阅 shell

在独立例程中§

有关 子 shell,请参阅 上下文中的主要文档

multi shell($cmd:$in = '-':$out = '-':$err = '-',
                Bool :$binBool :$chomp = TrueBool :$merge,
                Str :$encStr:D :$nl = "\n":$cwd = $*CWD:$env)

通过系统 shell 运行命令,在 Windows 中默认为 %*ENV<ComSpec> /c,否则为 /bin/sh -c。所有 shell 元字符都由 shell 解释,包括管道、重定向、环境变量替换等。Shell 转义是一个严重的安全性问题,并且会导致不寻常的文件名产生混淆。如果您想确保安全,请使用 run

返回值的 类型为 Proc

shell 'ls -lR | gzip -9 > ls-lR.gz';

有关更多详细信息,请参阅 Proc,例如有关如何捕获输出的详细信息。