如何从R调用Cygwin命令

时间:2013-12-01 18:47:05

标签: r shell command-line cygwin

我需要帮助从R 调用Cygwin命令(我使用的是R-Studio,我使用的是Windows 7)。今天我第一次安装了Cygwin,并通过例如Dropbox与Dropbox连接。以下命令:

./dropbox_uploader.sh upload "kokon.jpg" 

我的问题是:如何构建R命令从R控制台调用这些函数(通过Cygwin)?让我解释一下,我熟悉了systemshell函数的文档,还看到了this的问题,但我仍然对此感到困惑。

提前感谢您提供帮助。

1 个答案:

答案 0 :(得分:2)

您有两种选择:

  • 从cygwin
  • 调用RStudio
  • 在Windows中找到shell脚本路径并使用它,在Windows'的cygwin' s env下调用CMD

第一个选项不太好,因为它会为所有附加软件包使用不同的路径,但它会起作用。

要使用第二个选项,请使用dir /s <name>找到脚本。

例如,我创建了一个脚本foo.sh,并希望运行它。我在我的主目录中创建了它,并使用dir找到它:

 C:\>dir /s foo.sh
  Volume in drive C is WINDOWS
  VOlume Serial Number is 442D-5D33

  Directory of C:\cygwin64\home\u8002287

12/01/2013  01:56 PM                 29 foo.sh

foo.sh的内容:

#!/bin/sh
echo "Invoked Foo"

现在要调用,将该Windows路径转换为Cygwin,并在env下显式调用它:

system('cmd.exe /c c:\\cygwin\\bin\\env /cygdrive/c/cygwin64/home/u8002287/foo.sh', TRUE)
## [1] "Invoked Foo"
这里使用了

env,因为它并不关心你运行的是可执行文件或shell脚本还是其他脚本。