ยอดนิยม: อัปเดตข้อมูลเมื่อ 27 ตุลาคม 2569

หมวดหมู่

อินเทอร์เน็ต1,356
การสื่อสาร321
เสียงและวิดีโอ898
กราฟิกและการออกแบบ539
ออฟฟิศและเพิ่มประสิทธิภาพ1,124
เครื่องมือนักพัฒนา3,134
เครื่องมือ AI529
ความปลอดภัยและความเป็นส่วนตัว385
เครื่องมือระบบ3,114
เกม523
การศึกษาและวิทยาศาสตร์239
เครือข่ายและไอที284

shfmt ทุกเวอร์ชันและเวอร์ชันเก่า

Format shell programs

Daniel Martí เทอร์มินัลและเครื่องมือ CLI #78 เทอร์มินัลและเครื่องมือ CLI

หน้านี้รวบรวม shfmt ไว้ 11 เวอร์ชัน ตั้งแต่ 12 ธันวาคม 2565 จนถึงเวอร์ชันปัจจุบัน 3.14.1 ทุกเวอร์ชันลิงก์ไปยังไฟล์ตัวติดตั้งของผู้เผยแพร่เอง

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

11 เวอร์ชันในช่วง 4 ปี · ประมาณปีละ 2.9 ครั้ง

เวอร์ชันวันที่ขนาดไฟล์
3.14.1ล่าสุด 6 กันยายน 2569 — 64 บิต พกพา (Portable)32 บิต พกพา (Portable)
บันทึกประจำรุ่น
- 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 สิงหาคม 2569 — 64 บิต พกพา (Portable)32 บิต พกพา (Portable)
บันทึกประจำรุ่น
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 เมษายน 2569 — 64 บิต พกพา (Portable)32 บิต พกพา (Portable)
บันทึกประจำรุ่น
- 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 มีนาคม 2569 — 64 บิต พกพา (Portable)32 บิต พกพา (Portable)
3.12.0 6 กรกฎาคม 2568 — 64 บิต พกพา (Portable)32 บิต พกพา (Portable)
บันทึกประจำรุ่น
- 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 มีนาคม 2568 — 64 บิต พกพา (Portable)32 บิต พกพา (Portable)
บันทึกประจำรุ่น
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 ตุลาคม 2567 — 64 บิต พกพา (Portable)32 บิต พกพา (Portable)
บันทึกประจำรุ่น
- 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 สิงหาคม 2567 — 64 บิต พกพา (Portable)32 บิต พกพา (Portable)
บันทึกประจำรุ่น
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 กุมภาพันธ์ 2567 — 64 บิต พกพา (Portable)32 บิต พกพา (Portable)
บันทึกประจำรุ่น
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 มิถุนายน 2566 — 64 บิต พกพา (Portable)32 บิต พกพา (Portable)
บันทึกประจำรุ่น
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 ธันวาคม 2565 — 64 บิต พกพา (Portable)32 บิต พกพา (Portable)
บันทึกประจำรุ่น
- 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

ยอดนิยมใน เทอร์มินัลและเครื่องมือ CLI

ดูทั้งหมด
  1. PowerShellเทอร์มินัลและเครื่องมือ CLI · Microsoft Corporation
  2. QPDFเทอร์มินัลและเครื่องมือ CLI · QPDF
  3. Oh My Poshเทอร์มินัลและเครื่องมือ CLI · Jan De Dobbeleer
  4. Microsoft Azure CLIเทอร์มินัลและเครื่องมือ CLI · Microsoft Corporation
  5. yqเทอร์มินัลและเครื่องมือ CLI · Mike Farah
  6. Alacrittyเทอร์มินัลและเครื่องมือ CLI · Alacritty
  7. fzfเทอร์มินัลและเครื่องมือ CLI · Junegunn Choi
  8. PuTTYเทอร์มินัลและเครื่องมือ CLI · Simon Tatham
  9. cURLเทอร์มินัลและเครื่องมือ CLI · curl
  10. Tabbyเทอร์มินัลและเครื่องมือ CLI · Tabby Developers

แท็ก

แชร์