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.9.0
Name Modified Size InfoDownloads / Week
Parent folder
shfmt_v3.9.0_darwin_arm64 2024-08-16 2.8 MB
shfmt_v3.9.0_linux_amd64 2024-08-16 2.8 MB
shfmt_v3.9.0_darwin_amd64 2024-08-16 2.9 MB
shfmt_v3.9.0_linux_386 2024-08-16 2.7 MB
shfmt_v3.9.0_linux_arm64 2024-08-16 2.8 MB
shfmt_v3.9.0_linux_arm 2024-08-16 2.8 MB
shfmt_v3.9.0_windows_386.exe 2024-08-16 2.9 MB
sha256sums.txt 2024-08-16 736 Bytes
shfmt_v3.9.0_windows_amd64.exe 2024-08-16 3.1 MB
README.md 2024-08-16 1.1 kB
v3.9.0 source code.tar.gz 2024-08-16 224.9 kB
v3.9.0 source code.zip 2024-08-16 265.1 kB
Totals: 12 Items   23.2 MB 0

This release drops support for Go 1.21 and includes many fixes.

  • cmd/shfmt
  • Switch the diff implementation to remove one dependency
  • syntax
  • Protect against overflows in position offset integers
  • interp
  • Use os.Pipe for stdin to prevent draining by subprocesses - [#1085]
  • Support cancelling reads in builtins when stdin is a file - [#1066]
  • Support the nocaseglob bash option - [#1073]
  • Support the Bash 5.2 @k parameter expansion operator
  • Support the test -O and test -G operators on non-Windows - [#1080]
  • Support the read -s builtin flag - [#1063]
  • expand
  • Add support for case insensitive globbing - [#1073]
  • Don't panic when pattern words are nil - [#1076]

A special thanks to @theclapp for their contributors to this release!

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

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

CGO_ENABLED=0 go build -trimpath -ldflags="-w -s -X=main.version=v3.9.0"
Source: README.md, updated 2024-08-16