mcpField
B
bash-script-writing

bash-script-writing

github.com/steveclarke开发36123 次安装今天更新
代码仓库

关于 bash-script-writing

bash-script-writing 是一项规范模块化 Bash 脚本结构的技能,面向脚本编写者。内容涵盖函数设计、进度日志和清晰的代码组织。

主要功能

  1. 01将 main() 放在脚本顶部附近
  2. 02使用清晰的动词式函数名
  3. 03让每个函数只负责一项任务
  4. 04记录进度和完成状态
  5. 05用标题划分代码段

适用场景

  1. 01规划新 Bash 脚本的结构
  2. 02将脚本拆分为职责明确的函数
  3. 03让脚本执行进度更易追踪

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/steveclarke/dotfiles --skill bash-script-writing

安装后在 Claude Code 中输入/bash-script-writing确认已加载。

详细介绍

编写模块化 Bash 脚本

编写 Bash 脚本时,请遵循以下结构。

脚本模板

将 main() 紧接在变量之后,这样文件顶部就能清晰展示工作流。

#!/usr/bin/env bash
set -euo pipefail

################################################################################
# Script Title
################################################################################
#
# OVERVIEW
# --------
# Brief description of what this script does
#
# USAGE
# -----
#   script-name arg1 arg2
#
# CONFIGURATION
# -------------
# Environment variables or config requirements
#
################################################################################

# Colors
green='\033[0;32m'
blue='\033[0;34m'
yellow='\033[1;33m'
red='\033[0;31m'
nc='\033[0m'

# Configuration
VAR_ONE=${VAR_ONE:-default}
VAR_TWO=${VAR_TWO:?VAR_TWO is required}

################################################################################
# Main Orchestration
################################################################################

main() {
  parse_arguments "$@"
  step_one
  step_two
  log "Complete!"
}

################################################################################
# Helper Functions
################################################################################

log() { echo -e "${green}==>${nc} ${1}"; }
info() { echo -e "${blue}Info:${nc} ${1}"; }
warn() { echo -e "${yellow}Warning:${nc} ${1}"; }
error() { echo -e "${red}Error:${nc} ${1}" >&2; exit 1; }

################################################################################
# Core Functions
################################################################################

function_name() {
  log "What this function does..."
  # Implementation
  log "Complete"
}

################################################################################
# Script Execution
################################################################################

main "$@"

函数指南

  • 名称清晰:使用基于动词的名称(setup_directory、validate_config)
  • 单一用途:如果需要用“和”来描述,就应拆分
  • 记录进度:以 log "..." 开始,以状态结束
  • 保持精简:每个函数 5-20 行
  • 按节标题分组:使用 #### 分隔符划分逻辑分组

评论

支持 Markdown