mcpField
B
bash-style

bash-style

github.com/doccker開発1.1k43 回インストール9 週間前に更新
リポジトリ

bash-style について

bash-styleは、Bashスクリプトや文書内のシェルコマンド向けの規約スキルです。コメント、ファイル書き込み、ヒアドキュメント、権限、変数、安全な削除を扱います。

主な機能

  1. 01コメントとコードブロックの規約
  2. 02teeによるファイル書き込み
  3. 03ヒアドキュメントの引用と展開
  4. 04権限、パス、スクリプト設定
  5. 05変数の扱いと安全な削除

活用シーン

  1. 01Bashスクリプトや文書内コマンドの作成
  2. 02意図しない展開を避けた設定ファイル作成
  3. 03権限、パス、削除コマンドの確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/doccker/cc-use-exp --skill bash-style

インストール後、Claude Code で/bash-styleを入力して読み込まれたか確認します。

詳細

Bash 作成規約

バージョン:v1.0 更新:2026-01


1. コメントの規約

行末コメントの禁止
  • ❌ 行末コメントは禁止です(例:command # コメント)
  • ✅ コメントは独立した行に記述し、コードの上に配置します

適用範囲:

  • シェルスクリプトファイル(.sh)
  • Markdown ドキュメント内の bash コードブロック
  • Dockerfile、Makefile 内のシェルコマンド
# ❌ 错误:行尾注释
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/

理由:

  • コピー&ペースト時にコメントまで含まれ、コマンドがエラーになる可能性があります
  • 長いコマンド+コメントは行が長くなりすぎ、可読性が低下します
  • Heredoc ブロック内の # はコメントではなく内容です

2. ファイルへの書き込み方法

推奨する方法:tee コマンド
# ✅ 推荐:简洁、无嵌套引号
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事前に検証できます手順が多くなります複雑な設定

3. Heredoc の引用符ルール

変数展開を禁止する(デフォルトで推奨)
# ✅ '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'より安全です

4. 権限とパス

root 権限が必要な場合
# ✅ 正确: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

5. スクリプトの規約

ファイルヘッダー
#!/usr/bin/env bash
set -euo pipefail

# 脚本说明(一句话)
set オプションの説明
オプション役割
-eコマンドが失敗したときに終了します
-u未定義の変数を使用したときにエラーにします
-o pipefailパイプ内のいずれかのコマンドが失敗すると、全体を失敗とします
変数の使用
# ✅ 推荐:使用 ${} 包裹
echo "Hello, ${name}"

# ✅ 推荐:设置默认值
db_host="${DB_HOST:-localhost}"

# ❌ 避免:裸变量(易与后续字符混淆)
echo "Hello, $name_suffix"

6. よく使われるパターン

コマンドの存在確認
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/*

7. ドキュメント内のコードブロック

Markdown ドキュメントに bash コマンドを記述する場合も、上記の規約に従います:

## 安装配置

创建配置文件:

```bash
sudo tee /etc/myapp/config.yml > /dev/null << 'EOF'
server:
  port: 8080
  host: 0.0.0.0
EOF
```

参考資料

コメント