- The
mvdan-sh
JS package is discontinued in favor ofsh-syntax
- #1145 - cmd/shfmt
- interp
- Add
IsBuiltin
to check if a command name is a shell built-in - #1164 - Add
HandlerContext.Builtin
to allowExecHandlerFunc
to call built-ins - Initial support for
$!
andwait PID
- #221 - Return non-fatal
ExecHandlerFunc
errors via theRunner.Run
API - Add
HandlerContext.Pos
to provide handlers with source positions - Deprecate
NewExitStatus
andIsExitStatus
in favor ofExitStatus
- Fix
wait
to always return the status of the last given job - Copy all env vars for background subshells to avoid data races
- Support reading random numbers via
$RANDOM
and$SRANDOM
- Set
$BASH_REMATCH
when matching regular expressions via=~
- Support modifying local vars from the parent calling function
- Add
- expand
- Adjust which backslash sequences are expanded in here-docs - #1138
- Tweak tilde expansions to match Bash semantics
- pattern
- Remove the flawed and broken
Braces
mode; usesyntax.SplitBraces
instead - Tweak
**
to only act as "globstar" when alone as a path element - #1149 - Tweak
*
and**
to not match leading dots in basenames - Add a
NoGlobStar
mode to match the POSIX semantics
- Remove the flawed and broken
- fileutil
- Treat all non-regular files as definitely not shell scripts - #1089
Consider becoming a sponsor if you benefit from the work that went into this release!
Binaries built on go version go1.24.4 linux/amd64
with:
CGO_ENABLED=0 go build -trimpath -ldflags="-w -s -X=main.version=v3.12.0"