`Sys.which` 在 RStudio 中找不到可执行文件

`Sys.which` does not find an executable file in RStudio

我正在使用 Ubuntu 18.04、R 3.6.3 和最新版本的 RStudio。我有一个名为 brittany 的可执行文件。当我在终端中 运行 which brittany 时,它被找到了。当我在终端中输入 运行 R 并键入 Sys.which("brittany") 时,它就被发现了。但是当我在 RStudio 控制台中键入 Sys.which("brittany") 时,找不到它。为什么?这个文件的路径是/home/stla/.local/bin/brittany.

我找到了一个解决方法:如果我对路径中不包含句点的文件夹中的此文件执行符号 link,则会找到符号 link,我可以执行它。看起来像是 RStudio 的错误。

因此您的 shell 的 $PATH 值与 RStudio 的不同(在开始时,或通过您的 'dot' 文件)。结果路径显示:/home/$USER/.local/bin 是私有路径,不是系统路径。

我认为 RStudio 很荣幸 ~/bin 所以也许可以创建它并添加一个软链接。

另一方面,在我的机器上(Ubuntu 20.04,R 4.0.2,RStudio 1.4.781)我看到

R> system("echo $PATH")
/home/edd/.local/bin:/home/edd/bin:/usr/local/sbin:/usr/local/bin:\
/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:\
/usr/lib/rstudio/bin/postback
R>

这不是 system() 的侥幸,因为 Sys.getenv("PATH") 显示相同。