是否有R等价的其他语言三重引号?

Hil*_*ers 9 r system cat

我知道你可以使用"\"来转义特殊字符,但我很有兴趣创建将包含特殊字符的终端命令,这些命令无法很好地读取反斜杠.

作为一个简单的例子,我想要一个看起来像这样的命令:

echo hello "w" or'l'd
Run Code Online (Sandbox Code Playgroud)

这可以通过类似的东西来实现

system(command="""echo hello "w" or'l'd""")
Run Code Online (Sandbox Code Playgroud)

但R不处理三重引号.还有另外一种方法吗?即使从cat()捕获输出也没关系.例如newCommand = cat("echo hello \"w \"orld")

谢谢.

Sim*_*lon 7

你可以逃脱"\".shQuote如果您打算运行系统命令,我也会使用.它会照顾相关的逃避...

shQuote( "hello \"w\" orld" , type = "cmd" )
#[1] "\"hello \\\"w\\\" orld\""
Run Code Online (Sandbox Code Playgroud)

您应该知道您在R解释器中在屏幕上看到的内容并不完全是shell将看到的内容.例如

paste0( "echo " , shQuote( "hello \"w\" orld" , type = "sh") )
#[1] "echo 'hello \"w\" orld'"

system( paste0( "echo " , shQuote( "hello \"w\" orld" , type = "sh") ) )
#hello "w" orld
Run Code Online (Sandbox Code Playgroud)