我想在远程服务器上执行一行:
ssh user@machine 'for i in 1 2; do echo "$i"; done'
Run Code Online (Sandbox Code Playgroud)
如何使用命令通过R将此命令发送到服务器system()?问题是system()需要一个用引号括起来的字符串,如果我引用上面的行,那么引号会相互抵消.
尝试转义引号:
ssh user@machine 'for i in 1 2; do echo \"$i\"; done'
Run Code Online (Sandbox Code Playgroud)
我正在运行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)
Run Code Online (Sandbox Code Playgroud)
您会注意到我在-version参数周围放置了转义引号,命令运行没有任何问题.你可以尝试类似的东西ssh,它应该工作.当然,在R中尝试之前,您应首先验证该命令是否可以从bash shell运行.