我知道这有很高的重复风险,但在其他问题中我都没有找到解决我的问题的答案。以下是我已经尝试过的概述。
我有一个 R 脚本文件 file.r
:
#!/usr/bin/env Rscript
print("Hello World!")
这是一个可执行文件(chmod +x file.r
),我上次使用距今约一个月左右,运行命令如下:
$ ./file.r
然而,今天:
$ ./file.r
/usr/bin/env: 'Rscript\r': 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并重新安装。不幸的是,之前写的内容仍然适用。请注意,以下内容适用于两个版本的shebang:
$ Rscript file.r
[1] "Hello World!"
我做错了什么?
#!/usr/bin Rscript
绝对没有意义。我认为你想做的是类似#!/usr/bin/Rscript
这样的事情,以便直接指向可执行文件的路径。如果 Rscript 存储在那里,那么这将起作用。在我看来,原始错误中的 "\r" 部分是导致问题的原因。你尝试过删除整个 shebang 行并重新输入吗? - Dason