在针对这个问题进行测试时,有人建议我尝试使用内置的raku能避免这个变形的UTF-8错误吗?‘MacOS 'find。命令,其中包含raku run函数。
1 #!/usr/local/bin/raku
2
3 shell('find .'); #works
4
5 my $proc = run('find .', :out); #fails with
6 $proc.out.lines(:close).say; #() [ie. ().Seq]
结果,raku shell运行良好,但raku运行失败。我不完全确定这是否是MacOS上带有raku的bug (如果是,我很乐意报告).?
MacOS Catalina 10.15.17 .欢迎来到™v2020.10。实现™编程语言v6.d。构建在MoarVM版本2020.10上。
发布于 2021-03-15 13:54:40
您正在运行时遇到的问题与MacOS无关--它是由&shell
和&run
的工作方式不同引起的。参考文档,我们可以看到壳的签名包括$cmd
--命令作为Str
,与您提供的完全相同。
相反,跑的签名指定它需要执行*@args
--即一个包含零或多个参数的列表。
要匹配此签名,您应该更改代码,如下所示:
# my $proc = run('find .', :out); # doesn't work
my $proc = run('find', '.', :out); # works
my $p2 = run <find .>, :out; # also works (using word-splitting)
(您的版本要求您的计算机运行find .
程序,该程序在您的$PATH
中不存在,这解释了为什么它没有产生输出。)
https://stackoverflow.com/questions/66638718
复制相似问题