通过R在终端执行命令:如何正确引用?

时间:2015-11-03 08:15:07

标签: r

我想在远程服务器上执行一行:

ssh user@machine 'for i in 1 2; do echo "$i"; done'

如何使用system()命令通过R将此命令发送到服务器? 问题是system()需要一个用引号括起来的字符串,如果引用上面一行,引号会相互抵消。

1 个答案:

答案 0 :(得分:5)

尝试转义引号:

ssh user@machine 'for i in 1 2; do echo \"$i\"; done'

我正在运行Windows而我没有名为ssh的命令行工具,但我尝试了以下代码:

> system("java \"-version\"")
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)

您会注意到我在-version参数周围放置了转义引号,命令运行没有任何问题。您可以尝试与ssh类似的东西,它应该可以工作。当然,在R中尝试之前,您应该先验证该命令是否可以从bash shell运行。