Populært: Data opdateret 27. oktober 2026

Kategorier

Internet1.356
Kommunikation321
Lyd og video898
Grafik og design539
Kontor og produktivitet1.124
Udviklerværktøjer3.134
AI-værktøjer529
Sikkerhed og privatliv385
Systemværktøjer3.114
Spil523
Uddannelse og videnskab239
Netværk og IT284

shfmt: download ældre versioner

Format shell programs

Daniel Martí Terminaler og CLI-værktøjer #78 Terminaler og CLI-værktøjer

Her er 11 versioner af shfmt, fra 12. december 2022 til den aktuelle 3.14.1. Hver version linker til udgiverens egne installationsfiler.

2022: 1 1 22 2023: 1 1 23 2024: 3 3 24 2025: 2 2 25 2026: 4 4 26

11 versioner på 4 år · cirka 2,9 om året

VersionDatoStørrelseFiler
3.14.1Nyeste 6. september 2026 — 64-bit Portabel32-bit Portabel
Udgivelsesnoter
- syntax
- Fix the indentation of heredocs nested inside command substitutions - #1403
- Keep literal tabs in <<- heredoc bodies rather than replacing them with spaces
- Don't indent heredocs without dashes nested in <<- ones, whose output no longer parsed
- Zsh: don't drop the prefix in short forms like $#"$foo" and $+"$foo" - #1405
- interp
- Fix the build on 32-bit FreeBSD and NetBSD
- expand
- Don't let escaped characters such as \* act as glob metacharacters
- pattern
- Treat unclosed extended operator groups like @(a as literals, avoiding a panic
3.14.0 28. august 2026 — 64-bit Portabel32-bit Portabel
Udgivelsesnoter
This release drops support for Go 1.25 and includes many enhancements, particularly in the interpreter, which implements more shell features and fixes many divergences from Bash.
- cmd/shfmt
- Add --detect to find shell files by executable bit or shebang - #944
- syntax
- Add Preorder, an iterator over all nodes, complementing Walk
- Add encoding.TextUnmarshaler implementations for each operator type
- Support ${ foo;} and ${|foo;} inside double quotes - #1368
- Support array elements in {varname} redirects, like exec {fds[3]}>&- - #719
- Backslashes inside backquotes within double quotes escape double quotes - #1083
- Allow pound signs in associative array keys like ${args[cmd,#]} - #1285
- Don't treat # as the start of a comment inside [[ ]] tests - #1326
- Don't join then or do with a semicolon when heredocs are pending - #1047
- Print a space after ! in arithmetic expressions, avoiding history expansion - #987
- Space nested closing parentheses like the opening ones - #876
- Make SplitBraces reject malformed sequences and skip backslash escapes - #1330
- Zsh: support the ${=name}, ${~name}, and ${^name} prefixes - #1238
- Zsh: support the ;| case terminator and leading parentheses for globs - #1293, #1279
- Zsh: parse subscript flag arguments as patterns, and allow [ globs in arrays - #1278, #1322
- syntax/typedjson
- Encode operators as their syntax form, such as ">>", rather than integers - #1321
- Return errors rather than panicking on malformed input
- interp
- Add BashOpts to set Bash options like shopt - #962
- Add AccessHandler to control file access checks, used by -r and cd - #1318
- Add HandlerContext.LastExitStatus, and provide a HandlerContext to stat handlers
- Implement the help and times builtins, as well as $- - #1398
- Implement the ;& and ;;& case terminators - #1391
- Implement the -N test operator, and make -nt and -ot follow POSIX - #1340
- Support sparse indexed arrays such as a=([5]=x) - #1373
- Run files as shell scripts when exec fails with ENOEXEC - #1065
- Support empty here-documents, and don't expand quoted ones - #1390
- Support js/wasm, where subprocesses and pipes are unavailable
- Keep the redirections applied by exec with no arguments
- Only fire the exit trap when the shell exits, rather than after every Run
- expand
- Add BracesSeq with a config and error reporting, deprecating Braces
- Add Variable.Indexes to describe sparse indexed arrays
- Support integer bases in arithmetic - #339
- Short-circuit the arithmetic && and || operators - #1371
- Apply per-element operators to quoted array expansions like "${a[@]%o}" - #1081
- Make unquoted ${!arr[@]} consistent with the quoted form - #672
- Fix many divergences from Bash in arithmetic, string, and brace expansions
- Reject unsupported Zsh syntax rather than panicking - #1363
- pattern
- Treat an unmatched [ as a literal character, like Bash - #1372
- Fix panics and mismatches in bracket expressions, such as [![:space:]]
- fileutil
- Recognize dash shebangs as POSIX shell for -ln=auto - #1307
3.13.1 6. april 2026 — 64-bit Portabel32-bit Portabel
Udgivelsesnoter
- cmd/shfmt
- Add support for [[zsh]] in EditorConfig files
- Detect the shell variant from filenames like .zshrc and .bash_profile
- Fix --apply-ignore when used with explicit args - #1310
- syntax
- Revert an accidental change to how array subscripts are formatted - #1314
- Never join ;; with the previous line when formatting - #1289
- Fix a bug where $1[foo] was parsed as a subscript in Zsh - #1288
- Correctly parse $! in double quotes in Zsh - #1298
- Allow indexing into special parameters in Zsh - #1299
- Allow parameter expansions with empty names in Zsh - #1280
- interp
- Test against Bash 5.3 and fix three new discrepancies
- Fix a few bugs related to nameref variables
- Avoid panics when user input encounters unimplemented features
3.13.0 9. marts 2026 — 64-bit Portabel32-bit Portabel
3.12.0 6. juli 2025 — 64-bit Portabel32-bit Portabel
Udgivelsesnoter
- The mvdan-sh JS package is discontinued in favor of sh-syntax - #1145
- cmd/shfmt
- Support the "simplify" and "minify" flags via EditorConfig - #819
- Do not allow --write to replace non-regular files - #843
- interp
- Add IsBuiltin to check if a command name is a shell built-in - #1164
- Add HandlerContext.Builtin to allow ExecHandlerFunc to call built-ins
- Initial support for $! and wait PID - #221
- Return non-fatal ExecHandlerFunc errors via the Runner.Run API
- Add HandlerContext.Pos to provide handlers with source positions
- Deprecate NewExitStatus and IsExitStatus in favor of ExitStatus
- 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
- 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; use syntax.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
- fileutil
- Treat all non-regular files as definitely not shell scripts - #1089
3.11.0 5. marts 2025 — 64-bit Portabel32-bit Portabel
Udgivelsesnoter
This release drops support for Go 1.22 and includes many enhancements.
- cmd/shfmt
- Support -l=0 and -f=0 to split filenames with null bytes - #1096
- syntax
- New iterator API: Parser.WordsSeq
- Fix Parser.Incomplete and IsIncomplete to work well with Parser.Words - #937
- Initial support for parsing incomplete shell via RecoverErrors
- Expand LangError to include which language was used when parsing
- interp
- Refactor setting variables to fix array declaration edge cases - #1108
- Fix test read/write/exec operators to work correctly on directories - #1116
- Replace the cancelreader dependency with os.File.SetReadDeadline
- Avoid waiting for process substitutions, matching Bash
- Skip OpenHandler when opening named pipes for process substitutions - #1120
- Use TMPDIR if set via Env to create temporary files such as named pipes
- expand
- New iterator API: FieldsSeq
- Correctly handle repeated backslashes in double quotes - #1106
- Don't expand backslashes inside here-documents - #1070
Consider becoming a sponsor if you benefit from the work that went into this release!
3.10.0 20. oktober 2024 — 64-bit Portabel32-bit Portabel
Udgivelsesnoter
- cmd/shfmt
- Report the correct language variant in parser error messages - #1102
- Move --filename out of the parser options category - #1079
- syntax
- Parse all CRLF line endings as LF, including inside heredocs - #1088
- Count skipped backslashes inside backticks in position column numbers - #1098
- Count skipped null bytes in position column numbers for consistency
- interp
- Fix a regression in v3.9.0 which broke redirecting files to stdin - #1099
- Fix a regression in v3.9.0 where HandlerContext.Stdin was never nil
- Add an Interactive option to be used by interactive shells - #1100
- Support closing stdin, stdout, and stderr via redirections like <&-
Consider becoming a sponsor if you benefit from the work that went into this release!
3.9.0 16. august 2024 — 64-bit Portabel32-bit Portabel
Udgivelsesnoter
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!
3.8.0 11. februar 2024 — 64-bit Portabel32-bit Portabel
Udgivelsesnoter
This release drops support for Go 1.19 and 1.20 and includes many features and bugfixes, such as improving EditorConfig support in shfmt.
- cmd/shfmt
- Support EditorConfig language sections such as [[shell]] - #664
- Add --apply-ignore for tools and editors - #1037
- syntax
- Allow formatting redirects before all command argumetnts - #942
- Support brace expansions with uppercase letters - #1042
- Unescape backquotes in single quotes within backquotes - #1041
- Better error when using function in POSIX mode - #993
- Better column numbers for escapes inside backquotes - #1028
- interp
- Support parentheses in classic test commands - #1036
- Determine access to a directory via unix.Access - #1033
- Support subshells with FuncEnviron as Env - #1043
- Add support for fs.DirEntry via ReadDirHandler2
- expand
- Add support for fs.DirEntry via ReadDir2
- Support zero-padding in brace expansions - #1042
3.7.0 18. juni 2023 — 64-bit Portabel32-bit Portabel
Udgivelsesnoter
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!
3.6.0 12. december 2022 — 64-bit Portabel32-bit Portabel
Udgivelsesnoter
- Implement --from-json as the reverse of --to-json - #900
- Improve the quality of the --to-json output - #900
- Provide detected language when erroring with -ln=auto - #803

Mest populære i Terminaler og CLI-værktøjer

Se alle
  1. PowerShellTerminaler og CLI-værktøjer · Microsoft Corporation
  2. QPDFTerminaler og CLI-værktøjer · QPDF
  3. Oh My PoshTerminaler og CLI-værktøjer · Jan De Dobbeleer
  4. Microsoft Azure CLITerminaler og CLI-værktøjer · Microsoft Corporation
  5. yqTerminaler og CLI-værktøjer · Mike Farah
  6. AlacrittyTerminaler og CLI-værktøjer · Alacritty
  7. fzfTerminaler og CLI-værktøjer · Junegunn Choi
  8. PuTTYTerminaler og CLI-værktøjer · Simon Tatham
  9. cURLTerminaler og CLI-værktøjer · curl
  10. TabbyTerminaler og CLI-værktøjer · Tabby Developers

Tags

Del