Tại Sao Sử Dụng Công Cụ Định Dạng Script Shell Này
- Định dạng ngay lập tức cho POSIX sh, Bash, mksh và các shell liên quan
- Quy tắc kiểu shfmt cho lề, khoảng cách và khối case/esac
- Được thiết kế để hỗ trợ các tùy chọn như kích thước lề, tab so với khoảng trắng và khoảng cách chuyển hướng
- Dán mã thô hoặc tải lên tệp `.sh`, `.bash`, `.ksh`, `.mksh`, hoặc `.bats`
- Người bạn đồng hành hoàn hảo cho pipeline CI/CD, entrypoint Docker và dotfiles
- Được định dạng qua backend bảo mật chạy logic kiểu shfmt – không cần cài đặt cục bộ
- Sao chép hoặc tải xuống script đã làm sạch chỉ với một cú nhấp chuột
🛠️ Cách Định Dạng Script Shell Trực Tuyến for shell-script-formatter
1. Dán hoặc Tải Lên Script Của Bạn
📥 Dán mã shell vào trình soạn thảo, hoặc kéo-thả tệp `.sh`, `.bash`, `.ksh`, `.mksh` hoặc `.bats`. Tô sáng cú pháp giúp dễ dàng nhận diện cấu trúc và lệnh.
2. (Tùy chọn) Điều Chỉnh Cài Đặt Nâng Cao
⚙️ Nếu dự án của bạn sử dụng quy tắc kiểu tùy chỉnh, hãy điều chỉnh thụt lề hoặc các tùy chọn nâng cao khác khi chúng có sẵn trong giao diện. Ngược lại, hồ sơ mặc định đã khớp với thực hành shfmt phổ biến.
3. Định Dạng Script Của Bạn
✨ Nhấp **Định dạng** để gửi script đến API định dạng bảo mật. Nó viết lại thụt lề, khoảng cách và một số cấu trúc trong khi bảo toàn hành vi.
4. Sao Chép hoặc Tải Xuống Kết Quả
📤 Sao chép script đã định dạng trở lại trình soạn thảo của bạn, hoặc tải xuống dưới dạng tệp `.sh` sẵn sàng cho git, CI, hoặc triển khai sản xuất.
Thông Số Kỹ Thuật
Định Dạng & Phần Mở Rộng Được Hỗ Trợ
Hỗ trợ các phương ngữ shell kiểu Bourne phổ biến bạn gặp trong hệ thống thực tế:
| Định Dạng / Phương Ngữ | Phần Mở Rộng Điển Hình | Mô Tả |
|---|---|---|
| POSIX sh | .sh | Script shell di động tương thích với /bin/sh |
| Bash | .sh, .bash | Script GNU Bash và trình hỗ trợ tương tác |
| Korn shell (ksh) | .ksh | Script Korn shell trong môi trường kế thừa |
| mksh | .mksh | Kịch bản shell MirBSD Korn |
| Kiểm thử Bats | .bats | Bộ kiểm thử dựa trên shell sử dụng Bats |
Hành vi Định dạng (Kiểu shfmt)
Bộ định dạng backend tuân theo quy tắc kiểu shfmt để bố cục shell nhất quán.
| Khía cạnh | Hành vi | Lợi ích |
|---|---|---|
| Thụt lề | Chuẩn hóa thụt lề trên `if`, `for`, `while`, `case`, hàm và subshell | Dễ dàng phân tích luồng điều khiển và lồng nhau bằng mắt. |
| Khoảng cách | Thêm khoảng trắng quanh `=` trong phép gán và quanh toán tử nhị phân khi phù hợp | Giảm nhiễu hình ảnh và lỗi phân tích ngẫu nhiên. |
| Chuyển hướng | Hỗ trợ khoảng cách quanh `>`, `>>`, `<` theo quy ước kiểu shfmt | Cải thiện khả năng đọc của chuyển hướng tệp. |
| Khối case | Căn chỉnh `case`, nhánh mẫu và `esac` một cách nhất quán | Ngăn chặn câu lệnh case lồng sâu hoặc nén chặt. |
| Đầu ra bất biến | Chạy lại bộ định dạng cho kết quả tương tự | Cho phép tích hợp an toàn trong hook pre-commit và CI. |
Giới hạn & Kích thước Đầu vào
Được thiết kế để nhanh và dự đoán được ngay cả trên các kịch bản phức tạp.
| Tham số | Giới hạn / Hành vi | Ghi chú |
|---|---|---|
| Kích thước đầu vào tối đa (văn bản) | ≈ 2 MB | Các kịch bản lớn hơn nên được định dạng cục bộ với shfmt. |
| Kích thước tệp tối đa (tải lên) | ≈ 5 MB | Lý tưởng cho hầu hết kịch bản triển khai và bộ tiện ích. |
| Mã hóa | Khuyến nghị UTF-8 | Chuyển đổi mã hóa cũ như ISO-8859-1 trước khi định dạng. |
Mô hình Thực thi
Bộ định dạng chạy qua một backend được bảo mật sử dụng logic kiểu shfmt.
| Khía cạnh | Hành vi | Ghi chú |
|---|---|---|
| Vận chuyển | Gọi HTTPS đến điểm cuối `/api/shell-script-formatter` | Ngăn chặn nghe lén trong khi kịch bản của bạn đang được định dạng. |
| Thời gian chờ | ~25 giây mỗi yêu cầu | Tránh các công việc không kiểm soát trên đầu vào cực lớn hoặc bất thường. |
| Ngữ nghĩa | Chỉ khoảng trắng và bố cục | Logic kịch bản của bạn được giữ nguyên; chỉ định dạng được thay đổi. |
Tương đương CLI với shfmt
Muốn có hành vi tương tự trong terminal hoặc pipeline CI của bạn? Sử dụng trực tiếp `shfmt`:
Linux / 🍎 macOS / 🪟 Windows (qua WSL hoặc Go)
Cài đặt shfmt bằng Go
go install mvdan.cc/sh/v3/cmd/shfmt@latestCài đặt tệp nhị phân `shfmt` vào thư mục bin Go của bạn (ví dụ: `~/go/bin`).
Định dạng tệp shell với thụt lề 2 khoảng trắng
shfmt -i 2 -w script.shGhi đè `script.sh` với đầu ra được định dạng nhất quán.
Định dạng và in ra stdout
shfmt -i 4 script.shSử dụng thụt lề 4 khoảng trắng và in ra stdout mà không sửa đổi tệp.
Kiểm tra định dạng trong CI (không thay đổi)
shfmt -d scripts/Hiển thị khác biệt cho các tệp sẽ được định dạng lại; thoát với mã khác không nếu cần thay đổi.
Trường hợp sử dụng thực tế cho Định dạng Shell
DevOps & Pipeline CI/CD
Giữ các kịch bản quan trọng dễ đọc, dễ xem xét và an toàn cho sản xuất.
- Dọn dẹp kịch bản triển khai và hoàn tác trước khi hợp nhất vào `main`.
- Chuẩn hóa hook trong `.git/hooks`, `scripts/` và trợ giúp CI.
- Định dạng điểm nhập Docker và kịch bản khởi động container.
shfmt -i 2 -w ./scripts/deploy.shshfmt -i 2 -w ./scripts/*.shHợp tác nhóm & Mã nguồn mở
Tránh tranh cãi về phong cách và tập trung vào logic trong đánh giá.
- Áp dụng một kiểu định dạng duy nhất cho tất cả các tập lệnh shell của người đóng góp.
- Giúp việc hòa nhập dễ dàng hơn bằng cách giữ các dotfile và công cụ hỗ trợ gọn gàng.
- Giảm sự khác biệt nhiễu bằng cách chuẩn hóa thụt lề và khoảng cách.
shfmt -w hooks/*.shshfmt -i 2 -ci -bn -w .Học & Dạy Lập Trình Shell
Trình bày các phương pháp tốt nhất cho sinh viên và nhà phát triển mới.
- Làm sạch ví dụ trước khi đưa vào slide hoặc tài liệu.
- Tự động định dạng bài nộp của sinh viên để tập trung phản hồi vào ngữ nghĩa.
- Minh họa cách bố cục ảnh hưởng đến khả năng đọc và phát hiện lỗi.
❓ Frequently Asked Questions
🔍shfmt là gì?
⚙️Tôi có thể chọn số khoảng trắng để thụt lề không?
🚫Công cụ web này có ghi đè lên tệp của tôi không?
💬Nó có hiểu cú pháp đặc thù của Bash không?
🔒Có an toàn khi định dạng các tập lệnh nhạy cảm ở đây không?
Pro Tips
Chạy shfmt trước mỗi lần commit để lịch sử git của bạn tập trung vào các thay đổi thực sự, không phải khoảng trắng.
Kết hợp `shfmt -d` với CI để chặn các hợp nhất khi tập lệnh không được định dạng đúng cách.
Kết hợp công cụ định dạng này với ShellCheck để phát hiện cả vấn đề về kiểu và logic trong tập lệnh shell của bạn.
Giữ nguyên shebangs (`#!/usr/bin/env bash`) nhất quán trên tất cả script để tránh các vấn đề tương thích ngầm.
Additional Resources
Other Tools
- Bộ Làm Đẹp CSS
- Bộ Làm Đẹp HTML
- Bộ Làm Đẹp Javascript
- Bộ Làm Đẹp PHP
- Bộ Chọn Màu
- Bộ Trích Xuất Sprite
- Bộ Giải Mã Base64
- Bộ Mã Hóa Base64
- Bộ Định Dạng Csharp
- Bộ Định Dạng CSV
- Dockerfile Formatter
- Bộ Định Dạng Elm
- Bộ Định Dạng ENV
- Bộ Định Dạng Go
- Bộ Định Dạng GraphQL
- Bộ Định Dạng HCL
- Bộ Định Dạng INI
- Bộ Định Dạng JSON
- Bộ Định Dạng Latex
- Bộ Định Dạng Markdown
- Bộ Định Dạng ObjectiveC
- Php Formatter
- Bộ Định Dạng Proto
- Bộ Định Dạng Python
- Bộ Định Dạng Ruby
- Bộ Định Dạng Rust
- Bộ Định Dạng Scala
- Bộ Định Dạng SQL
- Trình Định Dạng SVG
- Trình Định Dạng Swift
- Trình Định Dạng TOML
- Typescript Formatter
- Trình Định Dạng XML
- Trình Định Dạng YAML
- Trình Định Dạng Yarn
- Bộ Thu Nhỏ CSS
- Html Minifier
- Javascript Minifier
- Bộ Thu Nhỏ JSON
- Trình Thu Nhỏ XML
- Trình Xem Tiêu Đề HTTP
- PDF Sang Văn Bản
- Bộ Kiểm Tra Regex
- Bộ Kiểm Tra Xếp Hạng SERP
- Tra Cứu Whois