谁知道为什么
system2("bash", "ls")
将导致(在 R-Gui 和 RStudio 控制台中)
/usr/bin/ls: /usr/bin/ls: cannot execute binary file
虽然其他 shell 没有问题(参见下面的示例),而 RStudio 终端中的“bash”也可以无问题地工作。如果有补救措施?
工作 system2
示例:
system2("powershell", "dir")
在此处在 Windows 10 上运行 R-3.6.3 ... 使用“Git bash”作为“bash”执行。
PS:以防万一有人想知道 - 我也尝试了完整路径,即 /usr/bin/ls
-> 相同的结果
答案 0 :(得分:0)
好的 - 这就是诀窍
system2("bash", input = "ls")
所以代替 args = ...
的 powershell
命令需要(或更有趣的是有时“可以”)使用 input = ...
参数和 bash
或者正如@oguzismail 在评论中提到的,这也行
system2("bash", "-c ls")
以及@Christoph 指出的
system2("ls")
有时也能工作(即在某些 RStudio[?] 设置中,它不会返回结果,而在某些情况下)。
但我已经注意到,R 版本与不同 RStudio 版本 [或更可能是语言环境] 的不同组合当然不会总是表现一致,当然也取决于 bash 命令的可用性,如 ls
(更普遍的是/usr/bin) 是否在 PATH 中。
所以选择最适合你的!