我正在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/