📦

bash-pro

آمن

編寫生產環境就緒的 Bash 腳本

編寫安全、可測試的 Bash 腳本以進行自動化需要防禦性編程模式。本技能提供關於嚴格錯誤處理、安全輸入驗證、使用 Bats 測試以及 CI/CD 整合的專業指導。

يدعم: Claude Codex Code(CC)
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "bash-pro". 編寫一個腳本,備份目錄並建立時間戳記的歸檔

النتيجة المتوقعة:

一個完整的 Bash 腳本,包含:set -Eeuo pipefail 嚴格模式、用於 -s (來源) -d (目的地) -h (幫助) 的 getopts、時間戳記備份檔名、具有適當錯誤處理的 tar、用於臨時檔案的清理 trap、使用 DRY_RUN 變數的乾跑模式,以及全面的 --help 輸出

استخدام "bash-pro". 建立一個腳本來監控磁碟使用率並在超過閾值時發出警報

النتيجة المتوقعة:

一個監控腳本,包含:df 命令解析、閾值驗證、帶有時間戳記的結構化日誌、syslog 整合、對遺失命令的優雅處理,以及透過環境變數設定的可配置警報級別

التدقيق الأمني

آمن
v1 • 2/25/2026

This is a prompt-only skill that provides guidance on defensive Bash scripting. Static analysis scanned 0 files (0 lines) and detected no suspicious patterns or risk factors. The skill contains no executable code and only provides instructional content for writing safe, production-grade shell scripts. No command injection, credential access, or malicious patterns detected.

0
الملفات التي تم فحصها
0
الأسطر التي تم تحليلها
0
النتائج
1
إجمالي عمليات التدقيق
لا توجد مشكلات أمنية
تم تدقيقه بواسطة: claude

ماذا يمكنك بناءه

建立 CI/CD 腳本的 DevOps 工程師

建立穩健的部署和建置腳本,優雅地處理錯誤、清理臨時資源,並與 GitHub Actions 整合進行自動化測試。

編寫系統工具的開發人員

建置具有適當幫助文件、參數驗證和日誌記錄的命令行工具,可在生產環境中安全使用。

審查 Shell 腳本的網站可靠性工程師

使用 ShellCheck 和防禦性編程模式審核現有的 Bash 腳本,找出安全性漏洞、可移植性問題和最佳實踐合規性。

جرّب هذه الموجهات

基本腳本生成
編寫一個 Bash 腳本來 [描述任務]。包含嚴格模式、使用 getopts 的參數解析、適當的錯誤處理,以及 --help 選項。
CI/CD 管線設定
建立一個 GitHub Actions 工作流程,使用 ShellCheck 檢查 Bash 腳本、使用 shfmt 格式化,並運行 Bats 測試。包含跨多個 Bash 版本的矩陣測試。
安全檔案處理
編寫一個安全處理使用者輸入檔案的 Bash 腳本。包含正確的引號處理、使用 traps 的臨時檔案清理、輸入驗證和 NUL 安全的檔案處理。
生產環境強化審查
審查這個 Bash 腳本的安全性問題、錯誤處理缺口和可移植性問題。識別具體的 ShellCheck 警告並提供修復方案:

[在此貼上腳本]

أفضل الممارسات

  • 始終在腳本開頭啟用嚴格模式:set -Eeuo pipefail 以捕獲錯誤和未定義變數
  • 引用所有變數展開:使用 "$var" 而非 $var 以防止單詞分割和萬用字元展開
  • 使用 traps 進行清理:trap 'rm -rf "$tmpdir"' EXIT 確保臨時檔案始終被移除

تجنب

  • 使用 for f in $(ls ...) - 會導致單詞分割錯誤;請改用 find 搭配 -print0 和 read -r -d ''
  • 在停用 | pipefail 的情況下忽略退出程式碼 - 始終檢查 set -o pipefail 並驗證關鍵命令的退出狀態
  • 對使用者輸入使用 eval - 嚴重的安全風險;請改用陣列進行動態命令建構

الأسئلة المتكررة

什麼是 Bash 中的嚴格模式?
嚴格模式是一組 Bash 選項 (set -Eeuo pipefail),使 shell 在遇到錯誤、未定義變數和管線失敗時退出。它可以防止無聲失敗,使腳本更可靠。
為什麼我應該使用 getopts 而不是手動參數解析?
getopts 是一個內建的 Bash 工具,可正確處理參數解析,支援短選項 (-f) 和長選項 (--file),並防止手動解析中的常見錯誤。
如何測試 Bash 腳本?
使用 Bats (Bash Automated Testing System) 框架編寫單元測試。Bats 提供與 RSpec 或 Jest 類似的 TAP 相容測試格式,適用於 shell 腳本。
什麼是 ShellCheck?
ShellCheck 是一個靜態分析工具,可檢測 shell 腳本中的錯誤、可移植性問題和安全問題。它應該在所有生產環境的 Bash 腳本上運行。
為什麼要使用 mktemp 和 traps?
mktemp 使用不可預測的名稱建立安全的臨時檔案。Traps 確保即使在腳本意外退出時清理程式碼也會運行,防止遺留臨時檔案。
如何使腳本在 Linux 和 macOS 之間可移植?
使用 #!/usr/bin/env bash shebang,檢查 GNU 與 BSD 工具差異 (sed -i 行為),在所有目標平台上測試,並在需要 POSIX 合規性時避免 Bash 特定功能。

تفاصيل المطور

المؤلف

sickn33

الترخيص

MIT

مرجع

main

بنية الملفات

📄 SKILL.md