posix-shell-pro
为任何 Unix 系统编写可移植的 POSIX shell 脚本
由于使用 bash 专有功能,Shell 脚本经常在不同系统上失败。本技能确保您的脚本使用严格的 POSIX 兼容性在任何地方运行。
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“posix-shell-pro”。 创建一个 POSIX 脚本,带有验证功能来备份目录
预期结果:
- #!/bin/sh
- set -eu
- 用法:backup.sh <source_dir> <dest_dir>
- if [ $# -lt 2 ]; then
- echo "错误:需要源目录和目标目录" >&2
- exit 1
- fi
- src="$1"
- dest="$2"
- [ -d "$src" ] || { echo "源不是目录" >&2; exit 1; }
- mkdir -p "$dest" || exit 1
- tar -cf - -C "$src" . | (cd "$dest" && tar -xf -)
- echo "备份成功完成"
正在使用“posix-shell-pro”。 以可移植方式检查命令是否存在
预期结果:
使用:command -v cmd >/dev/null 2>&1 && echo "已找到" || echo "缺失"
安全审计
安全This is a prompt-only skill with no executable code. Static analysis scanned 0 files and detected 0 security issues with a risk score of 0/100. The skill provides instructional content on POSIX shell scripting best practices and actually promotes security patterns including input validation, safe variable quoting, cleanup traps, and warnings against eval on untrusted input. No network calls, command execution, or sensitive operations detected.
风险因素
⚙️ 外部命令
质量评分
你能构建什么
跨平台部署脚本
创建安装和部署脚本,在 Linux、BSD、macOS 和嵌入式系统上完全一致地工作,无需安装 bash。
容器和嵌入式系统工具
为 Alpine Linux、BusyBox 和资源受限环境构建轻量级脚本,这些环境中 bash 不可用。
传统系统管理
维护和现代化旧版 Unix 系统(如 Solaris、AIX 和旧版 Linux)上的脚本,这些系统可能缺少 bash 或使用较旧版本。
试试这些提示
创建一个符合 POSIX 标准的 shell 脚本,验证输入参数并执行简单的文件操作。包含使用 set -eu 的适当错误处理、输入验证和清理 trap。
将此 bash 脚本转换为严格的 POSIX sh。将所有数组、[[ 条件判断和 bash 专用功能替换为符合 POSIX 标准的等效实现。解释所做的每项更改。
实现符合 POSIX 标准的参数解析,脚本接受 -h 表示帮助、-v 表示详细模式、-o 表示输出文件,以及位置参数。使用 while 和 case 而不使用 getopts 来处理长选项。
创建一个 POSIX shell 函数库,处理 Linux、BSD、macOS 和 BusyBox 之间的平台差异。包括操作系统检测、命令可用性检查以及常用工具的可移植实现。
最佳实践
- 始终将变量扩展引用为 "$var" 以防止单词拆分和通配符扩展
- 对所有输出使用 printf 而不是 echo,因为 echo 的行为在不同 shell 中有所不同
- 使用 trap 命令实现清理功能,在 EXIT、INT 和 TERM 信号时删除临时文件
避免
- 使用 [[ 条件判断或 bash 数组,这些在 dash、ash 和其他 POSIX shell 上会失败
- 使用 echo -e 或 echo -n,这些在不同系统上的行为不一致
- 使用进程替换 <() 或 source 命令,而不是管道和点运算符