Y.X. Thinking Collection

做了什么要记下来

0%

星号符号(*)在CLI开发中造成的困难

背景

在为公司的翻译工具创建CLI时,传入的参数中有星号符号(*)时遇到了无法识别,打印zsh: no matches found的问题

名词解释

* :星号符号,英文为asterisk,以下简称星号

问题描述

在开发CLI时,将带有星号的字符串作为option的参数传入,发现报错zsh: no matches found,如果没有星号即不会报错

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 此时会报错
$ my-namespace my-command my-file-path -e src/**/*.ts src/**/*.tsx src/**/*.js src/**/*.jsx

$ zsh: no matches found: src/**/*.tsx

// 此时不会报错
$ my-namespace my-command my-file-path -e src/.ts src/.tsx src/.js src/.jsx

// commander打印的参数
$ {
oldFile: 'my-file-path',
cmdObj: {
extract: [ 'src/.ts', 'src/.tsx', 'src/.js', 'src/.jsx' ]
}
}


经过查阅资料:

stackOverflow

Github Issues

CSDN