Skip to content

实际生产中搭建一个脚手架或者阅读其他脚手架源码的时候需要了解下面这些工具库 👇

名称简介
commander命令行自定义指令
inquirer命令行询问用户问题,记录回答结果
chalk控制台输出内容样式美化
ora控制台 loading 样式
figlet控制台打印 logo
easy-table控制台输出表格
download-git-repo下载远程模版
fs-extra系统fs模块的扩展,提供了更多便利的 API,并继承了fs模块的 API
cross-spawn支持跨平台调用系统上的命令

项目地址:https://github.com/SSQLQIANBB/cli

command命令


1. < >(尖括号)

  • 常见含义必填参数(placeholder)

  • 表示这个位置的值是你必须替换成实际内容的,而不能直接输入尖括号本身。

  • 例子

    bash
    git commit -m <message>

    这里 <message> 表示你必须输入提交说明,比如:

    bash
    git commit -m "Fix bug"

2. [ ](方括号)

  • 常见含义可选参数

  • 表示这个参数可以省略,如果省略则使用默认行为。

  • 例子

    bash
    ls [-l] [path]
    • l 是可选的,表示长格式输出
    • path 也是可选的,省略时默认是当前目录

3. ( )(圆括号)

  • 常见含义

    1. 在命令文档里:表示分组可选项集合
    2. 在 shell 里:表示子 shell 执行
  • 文档里的例子

    bash
    command (start|stop|restart)

    表示 startstoprestart 三选一。

  • shell 里的例子

    bash
    (cd /tmp && ls)  # 在子 shell 中执行

4. { }(花括号)

  • 常见含义

    • 参数占位符集合
    • bash 中的大括号扩展(brace expansion)
  • 例子

    bash
    cp file.{txt,md} /backup
    # 会复制 file.txt 和 file.md

总结表

符号含义示例说明
<…>必填参数git commit -m <message>尖括号表示必须替换成实际值,执行时不保留尖括号本身。
[…]可选参数ls [-l]方括号表示可省略,如果有多个可选参数可连用。
(…)分组选项 / 互斥选项git checkout (-b | --detach)圆括号表示一组选项,`
{…}枚举值集合tar -{c|x|t}大括号表示可选的固定值,必须选其中之一。
可重复cp <file>... <directory>表示该参数可以出现多次(重复传递)。
``二选一 / 多选一(start|stop)
--长选项npm install --save一般跟随参数名(全拼),更具可读性。
-短选项ls -l单字符选项,有时可合并:ls -la
--[no-]开启/关闭型选项--color / --no-color常见于支持显式关闭的 CLI。
command1 | command2管道ls | grep "txt"将前一个命令输出作为下一个命令的输入。
;顺序执行cmd1; cmd2无论前一个成功与否,都会执行下一个。
&&成功才执行cmd1 && cmd2仅当前一个命令成功(退出码 0)时才执行下一个。
``失败才执行
*通配符rm *.log匹配任意多个字符(shell 通配)。
?单字符通配file?.txt匹配任意单个字符。
[...](Shell 通配)字符集合file[1-3].txt匹配集合中任意一个字符或范围。
'…'单引号字符串'hello $name'禁止变量替换,原样输出。
"…"双引号字符串"hello $name"允许变量替换。
命令替换echo date``执行内部命令并返回结果。
$(…)现代命令替换echo $(date)同上,但更推荐且可嵌套。
#注释# This is a comment忽略该行内容(shell 解释器不执行)。

参考:

https://juejin.cn/post/6966119324478079007

Released under the MIT License.