posix-shell-pro
編寫可移植的 POSIX shell 腳本,適用於任何 Unix 系統
Shell 腳本常因使用 bash 特定功能而在不同系統上失敗。此技能確保您的腳本使用嚴格的 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 "found" || echo "missing"
安全審計
安全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 之間的平台差異。包含 OS 檢測、命令可用性檢查和常用實用程序的可移植實現。
最佳實務
- 始終將變量擴展引用為 "$var" 以防止單詞分割和通配符擴展
- 對所有輸出使用 printf 而非 echo,因為 echo 行為在各個 shell 之間有所不同
- 使用 trap 命令實現清理,在 EXIT、INT 和 TERM 信號時移除臨時文件
避免
- 使用 [[ 條件判斷或 bash 陣列,這些在 dash、ash 和其他 POSIX shell 上會失敗
- 使用 echo -e 或 echo -n,這些在不同系統上有不一致的行為
- 使用程序替換 <() 或 source 命令,而非管道和點運算符