วิธี \ 033 ไม่ได้ผลสำหรับฉัน วิธี \ r ใช้งานได้ แต่ไม่ได้ลบอะไรเลยเพียงแค่วางเคอร์เซอร์ไว้ที่จุดเริ่มต้นของบรรทัด ดังนั้นหากสตริงใหม่สั้นกว่าสตริงเก่าคุณจะเห็นข้อความที่เหลือท้ายบรรทัด ท้ายที่สุดแล้ว tput เป็นวิธีที่ดีที่สุด มีการใช้งานอื่น ๆ นอกเหนือจากสิ่งที่เคอร์เซอร์รวมทั้งติดตั้งไว้ล่วงหน้าใน Linux และ BSD distros จำนวนมากดังนั้นจึงควรมีให้สำหรับผู้ใช้ bash ส่วนใหญ่
tput sc
printf "Something that I made up for this string"
sleep 1
tput rc;tput el
printf "Another message for testing"
sleep 1
tput rc;tput el
printf "Yet another one"
sleep 1
tput rc;tput el
นี่คือสคริปต์การนับถอยหลังเล็กน้อยที่จะเล่นด้วย:
#!/bin/bash
timeout () {
tput sc
time=$1; while [ $time -ge 0 ]; do
tput rc; tput el
printf "$2" $time
((time--))
sleep 1
done
tput rc; tput ed;
}
timeout 10 "Self-destructing in %s"
for i in {1..100000}; do echo -en "\r$i"; done
เพื่อหลีกเลี่ยงการโทร seq :-)