我希望能够获取命令字符串,例如:
some/script --option="Quoted Option" -d --another-option 'Quoted Argument'
Run Code Online (Sandbox Code Playgroud)
并将其解析为我可以发送到的内容child_process.spawn:
spawn("some/script", ["--option=\"Quoted Option\"", "-d", "--another-option", "Quoted Argument"])
Run Code Online (Sandbox Code Playgroud)
我发现的所有解析库(例如最小化等)都通过将其解析为某种选项对象等来做太多.我基本上想要相当于Node process.argv首先要创建的东西.
这似乎是本机API中令人沮丧的漏洞,因为exec它接受一个字符串,但不能安全地执行spawn.现在我通过使用以下方式来解决这个问题:
spawn("/bin/sh", ["-c", commandString])
Run Code Online (Sandbox Code Playgroud)
但是,我不希望它如此强烈地与UNIX绑定(理想情况下它也适用于Windows).HALP?