2010-10-21 9 views
6

Tôi đang tìm một cái gì đó tương tự với indent nhưng cho (bash) tập lệnh. Chỉ bàn điều khiển, không tô màu, v.v.In đẹp cho tập lệnh shell

Bạn có biết không?

+0

Đồng thời xem xét đặt câu trả lời của bạn trong [câu hỏi tổng quát hơn này] (http://stackoverflow.com/questions/3923301/what-applications-do-you-know-of-that-can-reformat-code) – Benoit

Trả lời

5

Vim có thể thụt lề các tập lệnh bash. Nhưng không định dạng lại chúng trước khi thụt lề.
Sao lưu tập lệnh bash của bạn, mở tập lệnh bằng vim, nhập gg=GZZ và thụt lề sẽ được sửa. (Lưu ý vì thiếu kiên nhẫn: điều này sẽ ghi đè tệp đó, vì vậy hãy nhớ sao lưu!)

Mặc dù, một số lỗi có ký tự đầu tiên trên một dòng) ví dụ:

EDIT: ZZ không ZQ

+0

Ah người đàn ông! +1000 nếu tôi có thể. – Jamie

0

Trong bash tôi làm điều này:

source <(echo "Zibri() {";cat script_to_be_reindented.sh; echo "}") 
declare -f Zibri| cut -c 5-|head --lines=-1|tail --lines=+3 

này giúp loại bỏ ý kiến ​​và reindents kịch bản "bash cách". nó sẽ không hoạt động nếu kịch bản chứa HEREDOCS nhưng nếu bạn làm điều này:

source <(echo "Zibri() {";cat script_to_be_reindented.sh; echo "}") 
declare -f Zibri|head --lines=-1|tail --lines=+3 

nó sẽ làm việc với bất kỳ kịch bản nhưng toàn bộ kịch bản sẽ được thụt vào 4 dấu cách. cảm thấy tự do để sửa đổi nhưng trích dẫn tên của tôi trong kịch bản của bạn và đăng nó! : D