2015-11-03 140 views
1

我想在远程服务器上执行的行:通过R在终端执行命令:如何正确引用?

ssh [email protected] 'for i in 1 2; do echo "$i"; done' 

如何经由R个发送这个命令到服务器的system()命令? 问题是system()需要一个封装在引号中的字符串,如果我引用上面的一行,则引号会互相取消。

+1

你试过了什么?请分享确切的R代码 – RockScience

+0

我最初试图引用上面的字符串:system(“ssh user @ machine'for i in 1 2; do echo”$ i“; done'”) – BayerSe

回答

5

尝试逃避报价:

ssh [email protected] '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,它应该工作。当然,您应该先验证命令是否在b中运行,然后再在R中运行。

+0

system(“ssh user @ machine 'for i in 1 2; do echo \“$ i \”; done'“)完美地工作,谢谢! – BayerSe