{"version":"2.1.309","anchor":"bash-parser-changes-test-command-early-close-bailout-remove","canonical_anchor":"bash-parser-changes-test-command-early-close-bailout-remove","heading":"More test commands and $'...' strings pass the shell permission check","tier":"notice","area":"Bash Safety","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.309\/e\/bash-parser-changes-test-command-early-close-bailout-remove","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.309","markdown":"### More test commands and `$'...'` strings pass the shell permission check\n\nClaude Code no longer rejects some `[[ ]]` test commands as too complex to check, and reads `$'...'` strings differently\n\n**What**\n\nBefore running a shell command, Claude Code reads it to decide whether your permission rules allow it. Commands it cannot read with confidence are marked too complex and handled more cautiously.\n\nTwo things changed in how it reads them:\n\n- test commands written with `[[ ]]` or `[` that contain certain quote patterns are no longer marked too complex, and checking carries on\n\n- strings written as `$'...'`, a form that allows escape codes such as `\\n`, are now read by a different, shared routine\n\n**Why**\n\nSome commands that used to be set aside as too complex are now checked normally against your permission rules.\n\n- Area: Bash Safety\n- Tier: You'll notice\n- Useful: 1\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: no"}