除了球拍代表在Powershell中正常工作外,我什么也没得到。作为一个非常基本的示例:
PS C:\> racket -e '(display "hi\n")'
hin: undefined;
cannot reference an identifier before its definition
in module: top-level
internal name: hin
PS C:\>
或者,在cmd.exe中运行类似(似乎被单引号引起了混淆):
C:\Windows\System32>racket -e "(display \"hi\n\")"
hi
C:\Windows\System32>
在Powershell中运行相同的内容
PS C:\> racket -e "(display \"hi\n\")"
string::10: read-syntax: unknown escape sequence `\)` in string
在bash.exe中运行正常:
$ racket -e '(display "hi\n")'
hi
我能做些什么使球拍在Powershell中更好地运行?
答案 0 :(得分:3)
问题在于您正在Powershell中用球拍编写,这意味着您必须先将-e
字符串正确解析为 ,然后再将其发送到球拍。您不会在bash中遇到这个问题,因为bash足够聪明,可以在单引号("
)字符串中使用双引号('
)文字。您可以使用\“轻松逃脱以在powershell中获得双引号,从而使命令成为:
$ racket -e '(display \"hi\n\")'
hi