المهارات shell-scripting
🐚
Shell 腳本常常因為缺少錯誤處理而靜默失敗或表現不可預測。本技能提供經過實戰測試的模式,用於穩健的 bash 和 zsh 腳本撰寫,包括正確的錯誤處理、安全的變數擴展和模組化代碼結構。
يدعم: Claude Codex Code(CC)
1
تنزيل ZIP المهارة
2
رفع في Claude
اذهب إلى Settings → Capabilities → Skills → Upload skill
3
فعّل وابدأ الاستخدام
اختبرها
استخدام "shell-scripting". Write a bash script that processes CSV files safely
النتيجة المتوقعة:
- • 使用 IFS=, 來正確分割 CSV 欄位
- • 使用 [[ -f "$file" ]] 在讀取前檢查檔案是否存在
- • 優雅地處理空行和格式錯誤的資料
- • 使用 set -euo pipefail 進行穩健的錯誤處理
- • 引用所有變數擴展:"$VAR"
التدقيق الأمني
آمنv3 • 1/10/2026
Pure documentation skill containing markdown guidance only. No executable code, network access, file system modifications, or external command execution capabilities. All content is instructional shell scripting best practices.
1
الملفات التي تم فحصها
357
الأسطر التي تم تحليلها
0
النتائج
3
إجمالي عمليات التدقيق
لا توجد مشكلات أمنية
تم تدقيقه بواسطة: claude عرض سجل التدقيق →
درجة الجودة
38
الهندسة المعمارية
100
قابلية الصيانة
83
المحتوى
34
المجتمع
100
الأمان
87
الامتثال للمواصفات
ماذا يمكنك بناءه
自動化系統維護
為生產系統建立具有正確清理和錯誤處理的可靠維護腳本。
建立命令列自動化工具
使用參數解析、使用說明和有意義的錯誤訊息開發穩健的命令列工具。
撰寫安全的建置腳本
建立快速失敗的建置和部署腳本,並在錯誤時提供清楚的回饋。
جرّب هذه الموجهات
基本腳本結構
撰寫一個 bash 腳本模板,使用 set -euo pipefail 進行正確的錯誤處理,支援 verbose 和 dry-run 選項的參數解析,並具有主要的函數結構。
錯誤處理模式
使用 trap 在 EXIT、INT 和 TERM 訊號上添加清理功能,為我的腳本添加 bash 錯誤處理。包括命令存在性檢查和檔案驗證。
文字處理管線
建立一個使用 find、awk 和 sed 處理日誌檔案的 bash 腳本。尋找所有 .log 檔案,擷取 ERROR 行,並建立摘要報告。
命令列工具開發
使用 getopts 開發具有參數解析的 bash 命令列工具,支援說明輸出、子命令和不同錯誤情況的正確退出碼。
أفضل الممارسات
- 始終使用 set -euo pipefail 並引用所有變數擴展,以防止靜默失敗
- 使用 trap 為暫存檔案和資源實施清理處理常式
- 驗證所有輸入並明確檢查命令退出碼
تجنب
- 避免解析 ls 輸出 - 改用萬用字元和 find
- 千萬不要對不受信任或使用者提供的輸入使用 eval
- 不要假設路徑是安全的 - 始終引用和驗證
الأسئلة المتكررة
本技能支援哪些 Shell?
本技能專注於 bash 和 zsh,這是 Linux 和 macOS 系統上最常見的腳本 Shell。
關鍵的錯誤處理選項有哪些?
set -e(錯誤時退出)、set -u(未定義變數時錯誤)和 set -o pipefail(捕獲管線失敗)是核心選項。
本技能如何與 Claude Code 整合?
使用自然語言請求 Shell 腳本指導。本技能提供可以直接應用於腳本的模式。
使用本技能安全嗎?
是的。本技能僅提供指導和模式。它不會在您的系統上執行程式碼或修改檔案。
為什麼我的腳本會靜默失敗?
沒有 set -euo pipefail,bash 會在錯誤時繼續執行。添加這些選項並明確檢查退出碼以獲得可靠的腳本。
這與 AI 程式碼產生器有何不同?
本技能教授模式和最佳實踐。使用它來了解 Shell 腳本或請求特定模式,而不是產生完整的腳本。