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

`Sys.which`在RStudio中找不到可执行文件,r,ubuntu,rstudio,R,Ubuntu,Rstudio,我使用的是Ubuntu18.04、R3.6.3和RStudio的最新版本。我有一个名为brittany的可执行文件。当我在终端中运行brittany的时,会找到它。当我在终端中运行R并键入Sys.which(“brittany”),就会找到它。但是当我在RStudio控制台中键入Sys.which(“brittany”)时,找不到它。为什么?此文件的路径是/home/stla/.local/bin/brittany 我找到了一个解决方法:如果我在一个路径中不包含句点的文件夹中创建指向该文件的符号

我使用的是Ubuntu18.04、R3.6.3和RStudio的最新版本。我有一个名为
brittany
的可执行文件。当我在终端中运行brittany的
时,会找到它。当我在终端中运行R并键入
Sys.which(“brittany”)
,就会找到它。但是当我在RStudio控制台中键入Sys.which(“brittany”)
时,找不到它。为什么?此文件的路径是
/home/stla/.local/bin/brittany


我找到了一个解决方法:如果我在一个路径中不包含句点的文件夹中创建指向该文件的符号链接,那么就会找到该符号链接,并且我可以执行它。看起来像RStudio bug。

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

我认为RStudio尊重
~/bin
,所以也许可以创建它并添加一个软链接

另一方面,在我的机器上(Ubuntu 20.04,R4.0.2,RStudio 1.4.781),我明白了


这不是一个侥幸的
system()
,因为
Sys.getenv(“PATH”)
也显示了同样的情况。

谢谢。是的,这就是我所做的(在
~/bin
中的符号链接),这很有效。但是为什么RStudio中的$PATH与从终端启动的R中的$PATH不同呢?我不明白这一点。@Stéphanelant曾经有过这样的情况,bash控制台报告的路径与R控制台报告的路径不同。这不是一个Rstudio发明。但Rstudio实例的路径可能与裸R控制台会话的路径不同。有关R控制台的情况,请参阅
?启动
页面,并参阅该情况的Rstudio文档。如果你想看看在R vs bash的案例中对此有何评论,那么请回顾一下其中的一些热门作品,我认为这可能是重复的
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>