我正在r(windows)中测试bio3d包,遇到了一个相当普遍的问题:
bio3d中的“seqaln”函数尝试发出以下系统命令:

#cmd = "muscle -in C:\\Users\\derek\\AppData\\Local\\Temp\\RtmpUSXJCb\\file756f52c9 -out c:/pdb/temp.fas  -seqtype protein"
system(shQuote(cmd))

据我所知,什么都没发生。然而,一旦我删除了“shquote”,sekaln函数就可以正常工作了。所有shquote都是在命令周围添加一对“”的:
"\"C:/_utils/muscle.exe -in C:\\Users\\kfoo\\AppData\\Local\\Temp\\RtmpUSXJCb\\file756f52c9 -out c:/pdb/temp.fas  -seqtype protein\""

使用shquote有什么问题吗?
谢谢!

最佳答案

问题是您正在将shQuote()应用于同时包含命令及其参数的字符串。shQuote()中的示例都没有这样做,您也不应该这样做!
由于直接在windows“\"echo HelloWorld\"命令行键入时cmd失败的相同原因,以下操作不起作用:

system(shQuote("echo HelloWorld"))

相反,您应该执行以下操作:
system("echo HelloWorld")
# HelloWorld

或者,如果命令及其参数都可能包含空格,则可以使用如下shQuote()
system(paste(shQuote("echo"), shQuote("HelloWorld")))
# HelloWorld

关于windows - 在Windows上将shQuote与R结合使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10825069/

10-10 16:55