Skip to content

原文(日本語に翻訳)

Skills: コマンドボディで数字の前にリテラルな $ を含めるための \$ エスケープ構文を追加。

原文(英語)

Skills: added \$ escape syntax to include a literal $ before a digit in command bodies

概要

Skills(スラッシュコマンド)のコマンドボディで \$ と記述することで、変数展開されずにリテラルな $ 文字(特に数字の前の $)を含められるようになりました。シェルスクリプトの $1 などの位置パラメータや、テンプレートリテラル的な記法を含む Skills を正しく記述できます。

基本的な使い方

Skills の定義ファイル(.claude/skills/ 配下の .md ファイル)のコマンドボディで \$ を使います:

markdown
# my-skill

コマンドボディ:
\$1 は最初の引数を意味します(シェルの位置パラメータ)

\$1 と書くと、実行時に $1 というリテラルテキストとして扱われます(変数として展開されません)。

実践例

シェルの位置パラメータを含むコマンドを説明する Skill

markdown
---
name: explain-bash-params
description: Bash の位置パラメータを説明する
---

Bash スクリプトでよく使う位置パラメータ:
- \$0: スクリプト自体の名前
- \$1, \$2, ...: 各引数
- \$@: すべての引数の配列
- \$#: 引数の個数

例: `./script.sh arg1 arg2` の場合、\$1 は "arg1"、\$2 は "arg2" になります。

AWS や GCP のリソース ID を含むテンプレート Skill

markdown
---
name: aws-resource-template
description: AWS リソース ARN のテンプレートを生成する
---

ARN の形式:
arn:aws:s3:::\$BUCKET_NAME
arn:aws:iam::\$ACCOUNT_ID:role/\$ROLE_NAME

上記の \$BUCKET_NAME, \$ACCOUNT_ID, \$ROLE_NAME を実際の値に置き換えてください。

正規表現パターンを含む Skill

markdown
---
name: regex-guide
description: よく使う正規表現パターンを提示する
---

数字にマッチするパターン:
- \d{1,3}: 1〜3桁の数字
- ^\$: 空行
- \$1 は後方参照の 1 番目のグループを意味します

注意点

  • \$ エスケープが必要なのは「数字の前の $」です。$VAR のような変数名の前は、別途引用符などでエスケープする必要がある場合があります。
  • スキルのコマンドボディ(command: や Markdown 本文)でのみ有効です。他のフィールドには影響しません。
  • Skills のコマンドボディ内でシェルスクリプトのリテラルテキストを含めたい場合(コード説明など)に特に有用です。

関連情報