我的目标是使用 Linux shell 中的 Rscript 从我的主目录运行 R 文件 helloworld.r。我的 helloworld.r 文件如下所示
#!/home/usr/env Rscript
print("Hello World")
我已经添加export PATH="$PATH:/home/usr/R-3.5.1/bin/"
到我的路径中。现在当我运行
Rscript helloworld.r
从我的主目录中我得到
Fatal error: cannot open 'helloworld.r': No such file or directory
这是因为代码还是因为我没有成功将其添加到我的 PATH 中?(或者都不是?)
谢谢。
答案1
您的问题是您误解了如何PATH
搜索 。它仅搜索命令/程序,而不搜索传递给它的选项。因此,Rscript
在您的示例中,在 中搜索(并找到)PATH
,但不是helloworld.r
,因为它是传递给 的一个选项Rscript
。
现在,解决方案是:
chmod +x helloworld.r
从它所在的目录中,使其可执行。
您的第一行helloworld.r
开头是正确的,现在如果您以不带开头的#!
方式运行它,它将正常工作。helloworld.r
Rscript
关于#!
:这是当您将文件作为命令运行而不指定解释器时的情况,例如Rscript
。Linux 会检查该行以告诉它使用哪个解释器。
编辑
要确保您的#!
行正确,请helloworld.r
从其目录运行./hellworld.r
。如果有效,#!
则您的是正确的。我误读了您将 设置PATH
为的内容。您PATH
需要将 设置为(在本例中)您的Rscript
解释器、和的路径helloworld.r
。