2010-03-03 27 views
8

Tôi muốn làm định dạng bằng cách sử dụng echo trong kịch bản lệnh shell.Tôi có thể căn chỉnh các biến trong chuỗi bằng tiếng vọng và bash không?

Dưới đây là một đoạn mã nhỏ được đem lại cho tôi những vấn đề:

echo -en "\rFileName : $filename : $index of $lines Completed" 

Các $filename là một chuỗi có chiều dài khác nhau, và điều này đang gây ra vấn đề với định dạng trong thiết bị đầu cuối. Làm thế nào tôi có thể vượt qua điều này?

Đây là những gì tôi muốn nói:

FileName :  a800_102 : 6 of 6 Completed 
FileName :  ersf_1024 : 56 of 56 Completed 

Tôi muốn có một định dạng bảng khi tôi hiển thị nó trên thiết bị đầu cuối.

Trả lời

14

Sử dụng printf:

printf "\rFileName : %20s : %8d of %8d Completed" $filename $index $lines 
+0

Lưu ý rằng nếu dòng này là trong một vòng lặp for, bạn cần phải thêm biểu tượng xuống dòng "\ n" sau chữ "Hoàn thành", hoặc nó sẽ in chỉ một dòng. – CodyChan

Các vấn đề liên quan