我在一个远程主机上提交一个shell脚本,该主机反过来提交一个r脚本,但错误R: command not foundRscript: command not found(取决于我是尝试R CMD BATCH还是Rscript)。
我尝试过以下提交方式:

 ssh <remote-host> exec $HOME/test_script.sh

 ssh <remote-host> `sh $HOME/test_script.sh`

脚本test_script.sh包含(也尝试过Rscript):
#!/bin/sh

Rscript --no-save --no-restore $HOME/greetme.R

exit 0

脚本只包含greetme.R
我感到慌乱的原因是,当我登录到cat("Hello\n")并使用remote-host提交原始脚本时,它会按预期运行。
本地和远程主机的系统规格和R版本相同:
> R.version
               _
platform       x86_64-unknown-linux-gnu
arch           x86_64
os             linux-gnu
system         x86_64, linux-gnu
status
major          3
minor          1.0
year           2014
month          04
day            10
svn rev        65387
language       R
version.string R version 3.1.0 (2014-04-10)
nickname       Spring Dance

为什么linux拒绝识别这些命令?
我更喜欢使用sh $HOME/test_script.shR CMD BATCH的解决方案,但如果有使用Rscriptlittler的已知解决方案,我也希望听到它们。
我引用了这个相关的问题,以及评论中引用的文档:R.exe, Rcmd.exe, Rscript.exe and Rterm.exe: what's the difference?
为解决方案编辑:
正如@merlin2011所建议的,一旦我在%R_TERM%中指定了完整路径,一切都按预期工作:
#!/bin/sh

/opt/R/bin/Rscript --no-save --no-restore $HOME/greetme.R

exit 0

我也是根据提供的建议找到了这条路的:
$ which Rscript
/opt/R/bin/Rscript

最佳答案

似乎您有一个PATH问题,当您试图通过R运行命令时,PATH不在您的ssh上。
如果您在远程主机上指定RRscript的完整路径,它应该可以解决问题。
如果您不确定完整路径是什么,请尝试登录到服务器并运行which R以获取路径。

关于linux - 使用SSH提交时无法识别R命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28822118/

10-13 07:36