如何使我的R脚本可执行



我知道这是重复的高风险,但是在这里,我没有找到解决问题的答案。以下是我已经尝试过的摘要。

我有一个R脚本文件file.r

#!/usr/bin/env Rscript 
print("Hello World!")

是可执行的(chmod +x file.r(,并且以前(我上次使用它大约一个月前(发出的运行良好(

(:
$ ./file.r

但是,今天:

$ ./file.r
/usr/bin/env: 'Rscriptr': No such file or directory

实际上:

$ which Rscript
/usr/bin/Rscript 

因此,我将Shebang更改为:#!/usr/bin Rscript,但是:

$ ./file.r
/usr/bin: bad interpreter: Permission denied

然后我认为我会以超级用户的身份运行它,但是:

$ sudo ./file.r
sudo: unable to execute ./file.r: Permission denied

阅读周围我发现R的全新安装可以解决我的问题,因此我未安装和安装R。不幸的是,我之前写过的内容仍然适用。但是请注意,以下两个版本都可以使用:

$ Rscript file.r
[1] "Hello World!"

我在做什么错?

ah,其运输返回( r(问题,它已添加到第一行,如果您使用的是VI编辑器,则:set list将显示它。线路结尾将显示为$和运输返回字符,为 ^m。

#!/usr/bin/env Rscript  Makes your script portable than #!/usr/bin/Rscript

顺便说一句,您可以通过进入插入(i(/append(a(模式并键入ctrl v,然后键入ctrl m

来插入vi r

如果要直接指向可执行文件,则需要在Shebang(无空间(之后的完整路径:

#!/usr/bin/Rscript

正如Ravi指出的那样,如果此修复程序不起作用,则解决方案可能涉及删除线路并将其再次放入。

我不喜欢env解决方法可以使事情变得更加便携,因为它使行更加令人困惑,并且大多数人没有意识到它实际上是在调用另一个程序(即env(以修改后运行代码壳。有关此信息的更多信息。

我发现的最佳答案是:env:python r:没有这样的文件或目录

Open the file in vim or vi, and administer the following command:
:set ff=unix
Save and exit:
:wq
Done!

最新更新