使用CygWin从Shell运行R脚本:error";“未找到Rscript”;

使用CygWin从Shell运行R脚本:error";“未找到Rscript”;,shell,command,cygwin,rscript,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_

这是我第一次尝试从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
但是没有用。它已更改路径,但脚本仍没有运行


我们将非常感谢您的帮助

我一次又一次地发现了我犯的错误

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

例如:

$ cygpath 'C:\Program Files\R\R-3.0.1\bin'
/cygdrive/c/Program Files/R/R-3.0.1/bin
因此,我们需要确保PATH变量具有
程序文件
,而不是
程序文件
。 由于UNIX不理解特殊字符,我们需要对
程序文件之间的空格进行反向调整

 $ PATH=$PATH:/cygdrive/c/Program\ Files/R/R-3.0.1/bin

此后,它开始识别R文件。

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

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

cygwin使用unix路径时,您应该给出:
/cygwin/c/ProgramFiles/R/R-3-3.0.1/bin
嘿,谢谢您的帮助。我累了,但它给了我同样的错误!!当我执行
$which R
时,它会给我
which:no R in(..)
我的感觉是,您安装了windows版本的R,但尝试在Unix中使用。在windows中,它是R.exe或raccript。exe@BMW.. 是的,你在写。。我从未使用过Unix版本的R,我在Windows8上工作。我无法理解你对R.exe的看法。我应该如何处理R.exe?我将linreg.R的shebang改为Rscript.exe,但它仍然显示第一个错误。我通过进入Windows7的环境变量设置了路径。Cygwin上的路径是正确的,但我得到了“'C:\Program'未被识别为内部或外部命令、可操作程序或批处理文件”。如此接近,但迄今为止…我在我的cygwin.bashrc中尝试了一系列不同的方法,当这不起作用时,我转到Wndows 7高级系统设置。您的
echo%PATH%
说明了什么?我不知道如何在windows中检查PATH变量,因为我很久以前切换到Mac。高级系统设置路径是C:\ProgramData\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Rtools\bin;C:\Rtools\gcc-4.6.3\bin;C:\Program Files\RAA\R\R-3.3.0\bin\x64
echo$PATH
在Cygwin中吐出/usr/local/bin:/usr/bin:/cygdrive/C/programmadata/Oracle/Java/javapath:/cygdrive/C/windows/system32:/cygdrive/C/windows/system32/Wbem:/cygdrive/C/windows/system32/windowspowshell/v1.0:/cygdrive/C/Program/Intel/WiFi/bin:/cygdrive/C/C/Files/Common Files/Intel/WirelessCommon:/cygdrive/c/Rtools/bin:/cygdrive/c/Rtools/gcc-4.6.3/bin:/cygdrive/c/Program Files/RAA/R/R-3.3.0/bin/x64:/usr/lib/lapack