Perl 6的shell()使用哪个shell?

bri*_*foy 9 shell perl6 raku

Perl 6的shell将命令发送到"shell",但没有说明是什么.我一直在我的机器上打击,但我不知道我是否可以依赖它.

$ perl6 -e 'shell( Q/echo $SHELL/ )'
/bin/bash
$ csh
% perl6 -e 'shell( Q/echo $SHELL/ )'
/bin/bash
% zsh
$ perl6 -e 'shell( Q/echo $SHELL/ )'
/bin/bash
Run Code Online (Sandbox Code Playgroud)

在文档记录的时候,在Unix上这很容易,但是Windows上的cmd.exe或PowerShell(或者如果安装了bash)呢?我认为这是cmd.exe,但记录的答案会很好.

tim*_*imo 6

看看源代码,rakudo只是调用/bin/sh -c非windows并%*ENV<ComSpec> /c在windows上使用.

  • 两个`perl6 -e'shell(Q/echo $ SHELL /)'和'dash -c'echo $ SHELL'`给我一个空行,但是我使用`perl6 -e'hell"sleep 100"'`通过`ps faux`然后`ls -ls/proc/the-pid/exe`检查进程id,它给了我`/ proc/7162/exe - >/bin/dash` (2认同)