【发布时间】:2013-01-08 00:54:09
【问题描述】:
如何在 Node.js 中执行以下操作?我意识到可能没有内置功能或编写模块,那么我该如何实现呢?
>>> import shlex
>>> shlex.split("-a arga -b \"argument b\" arg1 arg2")
['-a', 'arga', '-b', 'argument b', 'arg1', 'arg2']
【问题讨论】:
如何在 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 的库或内部具有等效代码,但我实际上还没有详细研究过它们,所以我愿意接受没有任何东西可以使用。
正确处理所有细节很复杂。但幸运的是,Python 的shlex.split 的source code 是用纯Python 编写的,并且具有相当的可读性。所以,你应该可以移植它。
如果您这样做,理想情况下,您还应该构建一个好的测试套件并将其发布为 npm 包,以便下次其他人查看时,它将存在于 http://npmjs.org。
【讨论】:
我已经完成了 shlex 到 Node.js 的基本端口:https://www.npmjs.com/package/shlex
shell-quote 似乎已被放弃,有几个未解决的问题和拉取请求,但作者有一段时间没有回复。
【讨论】: