0

我正在使用节点指挥官编写命令行界面,并且一直在解析参数中的单引号。我搜索了文档和 StackOverflow,但没有发现任何结论。

有没有办法传入包含单引号的参数?


抽象出我所知道的工作,我剩下的是一个运行的 CLI:

node test.js command 'value''s values'

使用以下程序(这里的信用,用于一个简单的功能示例):

#!/usr/bin/env node
'use strict';

const program = require('commander');
program
    .version('0.0.1')
    .command('command <req> [optional]')
    .action(function(req,optional){
        console.log('User passed %s', req);
    });
program.parse(process.argv);

结果是User passed values values,它缺少参数第一个单词的单引号。所需的输出是User passed value's values

4

1 回答 1

2

你需要避开撇号。这将起作用:

node test.js command 'value'\''s values'

这是因为所谓的“强引用”。你可以在这里阅读更多关于它的信息。

强引用意味着这也将起作用:

node test.js command "value's values"

于 2017-06-16T03:27:44.437 回答