我在一个远程主机上提交一个shell脚本,该主机反过来提交一个r脚本,但错误R: command not found
或Rscript: 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.sh
或R CMD BATCH
的解决方案,但如果有使用Rscript
或littler
的已知解决方案,我也希望听到它们。我引用了这个相关的问题,以及评论中引用的文档: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
上。
如果您在远程主机上指定R
和Rscript
的完整路径,它应该可以解决问题。
如果您不确定完整路径是什么,请尝试登录到服务器并运行which R
以获取路径。
关于linux - 使用SSH提交时无法识别R命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28822118/