使用CygWin从Shell运行R脚本:错误“找不到Rscript”

时间:2014-04-12 04:00:48

标签: shell command cygwin rscript

这是我第一次尝试从CygWin终端运行R文件。 我有一个名为linreg.R的文件,我和CygWin终端中的文件位于同一目录中。 在同一目录中有一个shell脚本,它接受输入linreg.R和另一个data.txt(位于其他地方)。

当我使用适当的输入运行bash时,它会一次又一次地给我同样的错误:

$ ./build_model_from_directory.sh linreg.R /workdir/workdir/prod_data_v.txt lm_try
./build_model_from_directory.sh: line 27: type: Rscript: not found
Rscript is needed for linreg.R. Exiting

当我提出这样的事情时:

$./build_model_from_directory.sh linreg.Rscript /workdir/workdir/prod_data_v.txt lm_try
Script assumes linreg.Rscript in same directory

这是linreg.R的第一行

#!/usr/bin/env Rscript

我尝试设置路径PATH=$PATH:C:\\ProgramFiles\\R\\R-3.0.1\\bin 但没用它已经更改了PATH,但脚本仍未运行。

任何帮助都将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

将它添加到.bashrc文件中可能值得花时间:

echo 'PATH=$PATH:/cygdrive/c/Program\ Files/R/R-3.2.3/bin' >> .bashrc

答案 1 :(得分:0)

我弄清楚我一次又一次犯的错误。

cygpath用于查找UNIX环境中目录路径的实际表示

示例:

$ cygpath 'C:\Program Files\R\R-3.0.1\bin'
/cygdrive/c/Program Files/R/R-3.0.1/bin

因此,我们需要确保PATH变量具有Program Files而不是ProgramFiles。 由于UNIX不了解特殊字符,我们需要回溯Program Files

之间的空格
 $ PATH=$PATH:/cygdrive/c/Program\ Files/R/R-3.0.1/bin

之后开始识别R文件。