通过R在终端执行命令:如何正确报价?
我想在远程服务器上执行一行:通过R在终端执行命令:如何正确报价?,r,R,我想在远程服务器上执行一行: ssh user@machine 'for i in 1 2; do echo "$i"; done' 如何使用system()命令通过R将此命令发送到服务器? 问题是system()需要一个用引号括起来的字符串,如果我引用上面的行,引号会相互抵消。尝试转义引号: ssh user@machine 'for i in 1 2; do echo \"$i\"; done' 我正在运行Windows,没有名为ssh的命令行工具,但是我尝试了以下代码: > sy
ssh user@machine 'for i in 1 2; do echo "$i"; done'
如何使用system()
命令通过R将此命令发送到服务器?
问题是
system()
需要一个用引号括起来的字符串,如果我引用上面的行,引号会相互抵消。尝试转义引号:
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的ssh
,它应该可以工作。当然,在R中尝试该命令之前,应该先验证该命令是否可以从bash shell运行。尝试转义引号:
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的ssh
,它应该可以工作。当然,在R中尝试该命令之前,应该先验证该命令是否可以在bash shell中运行。您尝试了什么?请分享确切的代码,我最初只是尝试引用上面的字符串:system(“ssh”)user@machine“因为我在12;做回显”$i“完成””)你试了什么?请分享确切的代码,我最初只是尝试引用上面的字符串:system(“ssh”)user@machine'for i in 1 2;do echo“$i”done')系统(“sshuser@machine“i in 1 2;do echo \$i \“done'”)非常有效,谢谢!系统(“sshuser@machine“i in 1 2;do echo \$i \“done'”)非常有效,谢谢!