# 03 Shell Binsh

> Probe that hook commands run under /bin/sh (dash on WSL Ubuntu), not bash (§1.3). Bash-specific constructs should produce Bad substitution / syntax errors.

- Skill: `kazukinagata/03-shell-binsh` (Agent Skill)
- Install (CLI): `npx skillmds@latest add kazukinagata/03-shell-binsh`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kazukinagata/03-shell-binsh/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: kazukinagata (https://skillmd.com/u/kazukinagata)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/kazukinagata/03-shell-binsh

---


# 03-shell-binsh

§1.3 — hook 実行は `/bin/sh`（dash）。bash 固有構文で Bad substitution / syntax error。

## step 1: alive-check と shell 実体判定

```bash
proj="${CLAUDE_PROJECT_DIR:-$PWD}"
ver="${VERIFIER_VERSION_DIR:-v-unknown}"
sid="${CLAUDE_SESSION_ID:-no-sid}"
out_dir="$proj/findings/$ver/$sid"
mkdir -p "$out_dir"
{
  printf '[03-BODY %s] tag=alive-check\n' "$(date -Iseconds)"
  printf '[03-BODY] /bin/sh -> %s\n' "$(readlink -f /bin/sh)"
  /bin/sh -c 'printf "[03-binsh] BASH_VERSION=[%s] RANDOM=[%s]\n" "$BASH_VERSION" "$RANDOM"'
  /bin/sh -c '[[ "$X" = "y" ]] && echo "[[ works"' 2>&1 || printf '[03-binsh] [[ syntax error (expected)\n'
  /bin/sh -c 'echo "${PWD^^}"' 2>&1 || printf '[03-binsh] ^^ syntax error (expected)\n'
} | tee -a "$out_dir/probe.log"
```

## step 2: hooks.log にも shell error が出ているか確認

```bash
proj="${CLAUDE_PROJECT_DIR:-$PWD}"
ver="${VERIFIER_VERSION_DIR:-v-unknown}"
sid="${CLAUDE_SESSION_ID:-no-sid}"
echo "=== probe.log (shell test) ==="
tail -n 30 "$proj/findings/$ver/$sid/probe.log"
echo
echo "=== hooks.log (frontmatter hook bashism attempt) ==="
grep -A2 '03-FM-bashisms' "$proj/findings/$ver/$sid/hooks.log" 2>&1 || echo "(no match)"
```

完了して exit、`./scripts/assert.sh 03`。

