-1

任何人都知道为什么

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->相同的结果

4

1 回答 1

1

好的 - 这可以解决问题

system2("bash", input = "ls")

因此,而不是args = ... powershell一个需要的命令(或更有趣的是,有时“可以”)使用input = ...参数bash

或者正如@oguzismail 评论中提到的那样,这也可以

system2("bash", "-c ls") 

以及@Christoph 指出的

system2("ls") 

有时也可以工作(即在某些 RStudio[?] 设置中它不会返回结果,在某些情况下它会返回)。

但我开始注意到,R 版本与不同 RStudio 版本 [或更可能是语言环境] 的不同组合当然不会总是表现一致,这也取决于 bash 命令的可用性,例如ls(更一般地 /usr/bin)在路径与否。

所以选择最适合你的!

于 2021-02-05T13:48:02.050 回答