2010-07-30 42 views
24

Muốn tạo hiệu ứng lạ mắt bằng cách in [OK] ở cuối dòng cuối cùng khi tác vụ hoàn tất.Tiếp tục xuất trên cùng một dòng

Got này:

echo "$0: Starting backup process in '$backupdir'... " 
sleep 3 
echo '[OK]' 

tôi đã cố gắng điều khác nhau ở phần cuối của tiếng vang đầu tiên, vào đầu thứ hai như \r, \c, \, google nó ... Không tốt.

Tôi muốn nó kết quả này:

./backup.sh: Starting backup process in '/backup'...

... Và 3 giây sau, thêm [OK]:

./backup.sh: Starting backup process in '/backup'... [OK]

Cảm ơn,

+1

Xin đừng sử dụng 'echo', dính vào 'printf', đọc http: //www.opengroup.org/onlinepubs/009695399/utilities/echo.html để biết thêm thông tin về lý do. – Anders

Trả lời

44

Sử dụng -n tùy chọn bỏ qua dòng in mới ở cuối. Tham khảo thêm tại echo docs.

Vì vậy, bạn có thể làm một cái gì đó như thế này:

echo -n "$0: Starting backup process in '$backupdir'... " 
12

sử dụng di động hơn printf

+0

Di động theo cách nào? – Johan

+2

xem tại đây: http://en.wikipedia.org/wiki/Echo_%28command%29#cite_note-0 – ghostdog74

+5

Một số việc sử dụng tiếng vang sử dụng cờ '-n' để chặn dòng mới; những người khác sử dụng '\ c' ở cuối chuỗi. Nếu bạn sử dụng một trong kịch bản của bạn, và echo hy vọng khác, bạn sẽ nhận được "-n" ở phía trước đầu ra của bạn, hoặc "\ c" ở cuối. Nhưng 'printf"% s "" $ 0: ... "' sẽ luôn hoạt động như mong đợi. –

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