From cc-use-exp
Enforces Bash scripting norms: exclusive-line comments, tee for sudo file writes, quoted heredocs, set -euo pipefail shebangs, safe patterns. Activates on .sh, Dockerfile, Makefile, .yml/.yaml, Markdown bash blocks.
npx claudepluginhub doccker/cc-use-exp --plugin cc-use-expThis skill uses the workspace's default tool permissions.
版本:v1.0
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides MCP server integration in Claude Code plugins via .mcp.json or plugin.json configs for stdio, SSE, HTTP types, enabling external services as tools.
版本:v1.0 更新:2026-01
command # 注释)适用范围:
# ❌ 错误:行尾注释
curl -X POST https://api.example.com/data # 发送请求
docker run -d nginx # 启动容器
cp -r src/ dist/ # 复制文件
# ✅ 正确:注释独占一行
# 发送请求
curl -X POST https://api.example.com/data
# 启动容器
docker run -d nginx
# 复制文件
cp -r src/ dist/
原因:
# 不是注释而是内容# ✅ 推荐:简洁、无嵌套引号
sudo tee /etc/fail2ban/jail.d/docker-nginx.local > /dev/null << 'EOF'
[docker-nginx]
enabled = true
filter = docker-nginx
logpath = /var/log/nginx/access.log
maxretry = 5
EOF
# ✅ 追加到文件
sudo tee -a /etc/hosts > /dev/null << 'EOF'
192.168.1.100 myserver
EOF
# ✅ 单行追加
echo '192.168.1.100 myserver' | sudo tee -a /etc/hosts
# ❌ 避免:嵌套引号复杂,易出错
sudo bash -c 'cat > /etc/xxx << EOF
content
EOF'
# ❌ 避免:需要转义内容中的特殊字符
sudo sh -c "echo 'line1\nline2' > /etc/xxx"
| 方式 | 优点 | 缺点 | 推荐场景 |
|---|---|---|---|
sudo tee | 简洁、无嵌套 | 需 > /dev/null 抑制输出 | 首选 |
sudo bash -c 'cat >' | 无需 tee | 嵌套引号复杂 | 不推荐 |
| 临时文件 + mv | 可先验证 | 步骤多 | 复杂配置 |
# ✅ 'EOF' 带引号:内容原样输出,不解析变量
sudo tee /etc/xxx > /dev/null << 'EOF'
$HOME 不会被展开
$(command) 不会被执行
EOF
# EOF 不带引号:变量会被展开
sudo tee /etc/xxx > /dev/null << EOF
当前用户: $USER
当前目录: $(pwd)
EOF
| 场景 | 用法 | 原因 |
|---|---|---|
| 配置文件 | << 'EOF' | 避免意外展开 |
| 模板生成 | << EOF | 需要插入变量 |
| 不确定时 | << 'EOF' | 更安全 |
# ✅ 正确:tee 配合 sudo
echo 'content' | sudo tee /etc/xxx
# ❌ 错误:重定向在 sudo 之外,权限不足
sudo echo 'content' > /etc/xxx
# ✅ 正确:双引号包裹路径
sudo tee "/etc/my config/file.conf" > /dev/null << 'EOF'
content
EOF
#!/usr/bin/env bash
set -euo pipefail
# 脚本说明(一句话)
| 选项 | 作用 |
|---|---|
-e | 命令失败时退出 |
-u | 使用未定义变量时报错 |
-o pipefail | 管道中任一命令失败则整体失败 |
# ✅ 推荐:使用 ${} 包裹
echo "Hello, ${name}"
# ✅ 推荐:设置默认值
db_host="${DB_HOST:-localhost}"
# ❌ 避免:裸变量(易与后续字符混淆)
echo "Hello, $name_suffix"
if ! command -v docker &> /dev/null; then
echo "docker 未安装"
exit 1
fi
# 文件存在
[[ -f /path/to/file ]] && echo "文件存在"
# 目录存在
[[ -d /path/to/dir ]] || mkdir -p /path/to/dir
# ✅ 使用变量时防止误删
rm -rf "${dir:?}"/*
# ❌ 危险:变量为空时会删除根目录
rm -rf $dir/*
在 Markdown 文档中编写 bash 命令时,同样遵循以上规范:
## 安装配置
创建配置文件:
```bash
sudo tee /etc/myapp/config.yml > /dev/null << 'EOF'
server:
port: 8080
host: 0.0.0.0
EOF
```