我正在使用节点指挥官编写命令行界面,并且坚持解析参数中的单引号。我已经搜索了文档和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
。
你需要转义撇号。这将起作用:
node test.js command 'value'''s values'
这是有效的,因为一种叫做"强引用"的东西。您可以在此处阅读有关它的更多信息。
强引用意味着这也将起作用:
node test.js command "value's values"