2015-11-03 143 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