透過防禦性程式設計模式防止常見的 shell 腳本錯誤。此技能提供用於錯誤處理、輸入驗證和安全檔案操作的生產就緒範本,保護您的自動化免受邊緣案例和意外故障的影響。
下載技能 ZIP
在 Claude 中上傳
前往 設定 → 功能 → 技能 → 上傳技能
開啟並開始使用
測試它
正在使用「bash-defensive-patterns」。 建立一個具有錯誤處理功能的腳本,輪替超過 7 天的日誌檔案
預期結果:
腳本將包括:嚴格模式設定 (set -Eeuo pipefail)、日誌目錄驗證、具有適當錯誤處理的 find 命令、壓縮壓縮檔建立、原子檔案操作、暫時檔案的清理陷阱,以及顯示輪替進度和任何遇到的錯誤的結構化日誌記錄。
正在使用「bash-defensive-patterns」。 建立具有回滾能力的部署腳本
預期結果:
生成的腳本特點:用於環境和版本標誌的參數解析、預檢依賴檢查、在變更前建立目前部署的備份、用於零停機部署的原子符號連結切換、從備份還原的回滾函數、每個步驟的綜合日誌記錄,以及在失敗時自動觸發回滾的錯誤處理常式。
正在使用「bash-defensive-patterns」。 編寫一個監控流程並發送警報的腳本
預期結果:
監控腳本包括:使用 kill -0 的流程健康檢查、可設定的流程名稱清單、警報閾值設定、具有指數退避的重試邏輯、通知函數佔位符(電子郵件/slack)、用於優雅關閉的信號處理、使用 PIDs 陣列的後台流程追蹤,以及具有時間戳記用於稽核追蹤的結構化日誌記錄。
安全審計
安全All 106 static findings are false positives. The skill contains only markdown documentation with code examples demonstrating defensive Bash programming techniques. Command execution patterns, cryptographic references, and file operations are educational examples showing SAFE practices, not executable code. No prompt injection or malicious intent detected.
你能建構什麼
DevOps 管線腳本
建立具有適當錯誤處理、日誌記錄和冪等操作的 CI/CD 管線腳本,能安全失敗並提供清晰的錯誤訊息。
系統管理工具
建立處理邊緣案例、驗證輸入並包含清理處理常式的維護腳本,防止因自動化失敗而導致的系統損壞。
開發工具腳本
編寫具有參數解析、乾跑支援和綜合日誌記錄的開發者生產力工具,用於調試生產環境問題。
試試這些提示
建立一個將目錄備份到備份位置的 Bash 腳本。使用嚴格模式、錯誤捕捉,並在繼續之前驗證兩個目錄是否存在。
編寫一個接受輸入/輸出檔案參數的 Bash 腳本,使用 --input 和 --output 標誌。包括參數驗證、幫助文本、結構化日誌記錄,以及乾跑模式支援。
建立一個管理後台流程的 Bash 腳本,具有用於優雅關閉的信號處理常式。追蹤 PID、實作清理陷阱,並正確處理 SIGTERM/SIGINT。
編寫一個建立目錄、設定檔案和服務的 Bash 設定腳本。將其設計為冪等的 - 可安全多次執行而不會造成重複資源或錯誤。
最佳實務
- 始終在腳本開頭啟用嚴格模式 'set -Eeuo pipefail' 以儘早捕捉錯誤
- 引用所有變數擴展以防止單詞分割和萬用字元問題
- 在條件判斷中使用 [[ ]] 而不是 [ ] 以啟用更安全的模式匹配並防止意外的單詞分割
避免
- 不要使用未引用的變數如 'cp $source $dest' - 這會導致包含空格的檔案名發生單詞分割
- 避免使用反引號進行命令替換 - 偏好現代的 '$()' 語法以获得更好的巢狀結構和可讀性
- 切勿單獨使用 'set -e' 而不了解 pipefail - 始終一起使用 'set -Eeuo pipefail' 以獲得完整的錯誤處理