在 Linux shell 中将可执行文件添加到我的 PATH

在 Linux shell 中将可执行文件添加到我的 PATH

我的目标是使用 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.rRscript

关于#!:这是当您将文件作为命令运行而不指定解释器时的情况,例如Rscript。Linux 会检查该行以告诉它使用哪个解释器。

编辑 要确保您的#!行正确,请helloworld.r从其目录运行./hellworld.r。如果有效,#!则您的是正确的。我误读了您将 设置PATH为的内容。您PATH需要将 设置为(在本例中)您的Rscript解释器、的路径helloworld.r

相关内容