2

我将如何在 Node.js 中执行以下操作?我意识到可能没有内置功能或书面模块,那么我该如何实现呢?

>>> import shlex
>>> shlex.split("-a arga -b \"argument b\" arg1 arg2")
['-a', 'arga', '-b', 'argument b', 'arg1', 'arg2']
4

2 回答 2

2

我假设您已经搜索过http://npmjs.org(搜索或浏览shell关键字),而不是假设不存在这样的东西。例如,快速浏览一下,各种包shell-quote似乎可能会执行您想要的操作,而其他类似的包nshell似乎可能依赖于shlex-like 库或内部具有等效代码,但我实际上并没有看过它们中的任何一个详细,所以我愿意接受没有什么可以使用的。

正确处理所有细节很复杂。但幸运的是,Python 的源代码shlex.split是用纯 Python 编写的,并且具有相当的可读性。所以,你应该能够移植它。

如果这样做,理想情况下,您还应该构建一个好的测试套件并将其作为npm包发布,以便下次其他人查看时,它存在于http://npmjs.org

于 2013-01-08T01:12:28.010 回答
2

我已经完成了shlex对 Node.js 的基本移植:https ://www.npmjs.com/package/shlex

shell-quote似乎被放弃了,有几个未解决的问题和拉取请求,但作者有一段时间没有回复它们。

于 2018-06-19T12:07:59.337 回答