我在远程主机上提交一个shell脚本,该脚本又提交一个R脚本,但错误为R: command not found
或Rscript: command not found
(取决于我是否尝试R CMD BATCH
或{{1} })。
我尝试过以下方式提交:
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版本完全相同:
sh $HOME/test_script.sh
为什么Linux拒绝识别这些命令?
我更喜欢使用> 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
或R CMD BATCH
的解决方案,但如果有使用Rscript
或littler
的已知解决方法,我也希望听到它们。
我使用此相关问题作为参考,以及评论中引用的文档:R.exe, Rcmd.exe, Rscript.exe and Rterm.exe: what's the difference?
解决方案的编辑:
正如@ merlin2011建议的那样,一旦我在%R_TERM%
中指定了完整路径,一切都按预期工作:
test_script.sh
我也通过提供的建议得到了道路:
#!/bin/sh
/opt/R/bin/Rscript --no-save --no-restore $HOME/greetme.R
exit 0
答案 0 :(得分:5)
您似乎遇到PATH
问题,当您尝试通过R
运行命令时,PATH
不在ssh
上。
如果您在远程主机上指定R
和Rscript
的完整路径,则应解决此问题。
如果您不确定完整路径是什么,请尝试登录服务器并运行which R
以获取路径。