使用 SSH 提交时无法识别 R 命令
R Command not recognized when submitted with SSH
我在远程主机上提交了一个 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
并使用 sh $HOME/test_script.sh
提交原始脚本时,它按预期运行。
本地和远程主机的系统规格和 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 拒绝识别命令?
我更喜欢使用 R CMD BATCH
或 Rscript
的解决方案,但如果有使用 littler
或 %R_TERM%
的已知解决方法,我也想听听它们。
我参考了这个相关问题,以及评论中引用的文档:R.exe, Rcmd.exe, Rscript.exe and Rterm.exe: what's the difference?
编辑解决方案:
正如@merlin2011 所建议的,一旦我在 test_script.sh
中指定了完整路径,一切都会按预期进行:
#!/bin/sh
/opt/R/bin/Rscript --no-save --no-restore $HOME/greetme.R
exit 0
我也通过提供的建议得到了路径:
$ which Rscript
/opt/R/bin/Rscript
您似乎遇到了一个 PATH
问题,当您尝试通过 ssh
运行 命令时,R
不在您的 PATH
上.
如果您在远程主机上指定 R
和 Rscript
的完整路径,应该可以解决问题。
如果您不确定完整路径是什么,请尝试登录服务器并运行宁which R
获取路径。
我在远程主机上提交了一个 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
并使用 sh $HOME/test_script.sh
提交原始脚本时,它按预期运行。
本地和远程主机的系统规格和 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 拒绝识别命令?
我更喜欢使用 R CMD BATCH
或 Rscript
的解决方案,但如果有使用 littler
或 %R_TERM%
的已知解决方法,我也想听听它们。
我参考了这个相关问题,以及评论中引用的文档:R.exe, Rcmd.exe, Rscript.exe and Rterm.exe: what's the difference?
编辑解决方案:
正如@merlin2011 所建议的,一旦我在 test_script.sh
中指定了完整路径,一切都会按预期进行:
#!/bin/sh
/opt/R/bin/Rscript --no-save --no-restore $HOME/greetme.R
exit 0
我也通过提供的建议得到了路径:
$ which Rscript
/opt/R/bin/Rscript
您似乎遇到了一个 PATH
问题,当您尝试通过 ssh
运行 命令时,R
不在您的 PATH
上.
如果您在远程主机上指定 R
和 Rscript
的完整路径,应该可以解决问题。
如果您不确定完整路径是什么,请尝试登录服务器并运行宁which R
获取路径。