Shell Script Development
主要面向 Bash。
TOC
其他
- docopt: 如何写命令的 help 文档
- Command Line Interface Guidelines
测试
- bats-core: 现代化的 Bash 测试框架
- bats-core/bats-assert: 原项目没人维护,jasonkarns fork 了一份,且他是 bats-core 的成员。
- bats-core/bats-support: bats-assert 依赖 bats-support
- bats-file: 文件 assert
- bats-detik: e2e tests of applications in K8s environments
- zunit: 现代化的 Zsh 测试框架
- shellspec: A full-featured BDD unit testing framework for bash, ksh, zsh, dash and all POSIX shells
- shunit2: unit test framework
颜色
参数解析
- dispatch: A full command line argument dispatcher in 50 lines of portable shell script. Unlike many argument parsers, dispatch is not designed to be used inside case/esac control structures. It behaves like a router for shell script functions.
工具集
- composure: 超好用的工具链
- shellfire: 提供很多便利的函数,用于 shell 脚本开发
- https://github.com/alexanderepstein/Bash-Snippets
- lobash: bash 专用的工具函数集合。类似 JS 的 Lodash。
- readlinkf: 跨平台、POSIX 兼容的
readlink -f
- bashup/realpaths: 备选方案
LSP
- bash-language-server: LSP server。如果安装了 shfmt,会自动用它来格式化代码。
Lint
- shellcheck: linux shell script lint
格式化 Formater
自动补全
https://github.com/scop/bash-completion
可通过 brew 安装,brew install bash-completion
for bash 3.x,brew install bash-completion@2
for bash 4.x。
日志
文件定位
- lookup.sh: Look up project directory based on a locator file. Never write ../../ relative path format.