Download Latest Version v3.11.0 source code.tar.gz (232.0 kB)
Email in envelope

Get an email when there's a new version of sh

Home / v3.7.0
Name Modified Size InfoDownloads / Week
Parent folder
shfmt_v3.7.0_linux_amd64 2023-06-18 2.9 MB
shfmt_v3.7.0_linux_386 2023-06-18 2.8 MB
shfmt_v3.7.0_linux_arm 2023-06-18 2.9 MB
shfmt_v3.7.0_darwin_amd64 2023-06-18 3.1 MB
shfmt_v3.7.0_darwin_arm64 2023-06-18 3.1 MB
shfmt_v3.7.0_linux_arm64 2023-06-18 2.9 MB
shfmt_v3.7.0_windows_386.exe 2023-06-18 3.0 MB
shfmt_v3.7.0_windows_amd64.exe 2023-06-18 3.1 MB
README.md 2023-06-18 1.2 kB
v3.7.0 source code.tar.gz 2023-06-18 219.5 kB
v3.7.0 source code.zip 2023-06-18 259.0 kB
Totals: 11 Items   24.4 MB 0

This release drops support for Go 1.18 and includes many features and fixes.

  • syntax
  • Correctly parse $foo#bar as a single word - [#1003]
  • Make &> redirect operators an error in POSIX mode - [#991]
  • Avoid producing invalid shell when minifying some heredocs - [#923]
  • Revert the simplification of ${foo:-} into ${foo-} - [#970]
  • interp
  • Add ExecHandlers to support layering multiple middlewares - [#964]
  • Add initial support for the select clause - [#969]
  • Support combining the errexit and pipefail options - [#870]
  • Set EUID just like UID - [#958]
  • Replace panics on unimplemented builtins with errors - [#999]
  • Tweak build tags to support building for js/wasm - [#983]
  • syntax/typedjson
  • Avoid reflect.Value.MethodByName to reduce binary sizes - [#961]

A special thanks to all the contributors to this release! @riacataquian @anderbubble @teefill @diamondburned

Consider becoming a sponsor if you benefit from the work that went into this release!

Binaries built on go version go1.20.5 linux/amd64 with:

CGO_ENABLED=0 go build -trimpath -ldflags="-w -s -X=main.version=v3.7.0"
Source: README.md, updated 2023-06-18