我将如何在 Node.js 中执行以下操作?我意识到可能没有内置功能或书面模块,那么我该如何实现呢?
>>> import shlex
>>> shlex.split("-a arga -b \"argument b\" arg1 arg2")
['-a', 'arga', '-b', 'argument b', 'arg1', 'arg2']
我假设您已经搜索过http://npmjs.org(搜索或浏览shell关键字),而不是假设不存在这样的东西。例如,快速浏览一下,各种包shell-quote
似乎可能会执行您想要的操作,而其他类似的包nshell
似乎可能依赖于shlex
-like 库或内部具有等效代码,但我实际上并没有看过它们中的任何一个详细,所以我愿意接受没有什么可以使用的。
正确处理所有细节很复杂。但幸运的是,Python 的源代码shlex.split
是用纯 Python 编写的,并且具有相当的可读性。所以,你应该能够移植它。
如果这样做,理想情况下,您还应该构建一个好的测试套件并将其作为npm
包发布,以便下次其他人查看时,它会存在于http://npmjs.org。
我已经完成了shlex
对 Node.js 的基本移植:https ://www.npmjs.com/package/shlex
shell-quote
似乎被放弃了,有几个未解决的问题和拉取请求,但作者有一段时间没有回复它们。