用途:在编写或审查 shell 脚本时应用统一的跨平台规范,默认目标是最大可移植性,除非用户明确限定平台。适用编写、审查、调试或重构 .sh 脚本,涵盖 POSIX sh、bash、zsh 及相关格式。
主要能力与规则要点:强调同时兼容 GNU/Linux、BSD、macOS 与 BusyBox/Alpine;区分 /bin/sh 在 Debian/Ubuntu 为 dash、Alpine 为 ash、macOS 为旧版 bash、FreeBSD 为 sh,按最低公分母 POSIX sh 编写;默认 shebang 用 #!/usr/bin/env sh。列出 coreutils 差异的便携写法,如 sed 用临时文件替代 -i,date 只用 '+%Y-%m-%d' 这类通用格式,stat 用 wc -c,readlink -f 用 cd 与 pwd -P 替代,grep 避免 -P,xargs 避免 -r,mktemp 配合 trap 清理,cp 仅用 -p;复杂转换优先 awk 且不用 gawk 扩展。变量展开一律双引号,仅在需要分词或通配时不加引号;用 ${VAR:-default} 设默认值,readonly 定义常量,区分声明与 export。条件判断用 [ ] 而非 [[ ]],命令存在性用 command -v 而非 which。错误处理建议 set -eu,管道错误传播的 set -o pipefail 仅 bash/zsh 支持;清理用 trap。输出约定:用户信息走 stdout,错误走 stderr,优先 printf 而非 echo -e/-n。函数用下划线命名,底部以 main "$@" 调用,heredoc 用 <<'EOF' 阻止展开。格式化用 shfmt -i 2 -ci -s,可加 -w 就地修改。
使用方式与限制:资料提供多条 docker run 命令用于多平台测试,例如 docker run --rm -v "$PWD:/w" -w /w alpine sh script.sh。限制在于规则面向可移植脚本,bash/zsh 专有特性需用户明确指定目标平台;具体安装方式、收费与授权信息暂未提供。