Buna ek olarak \r
veya \b
yaklaşırken, terminale tüm çizgiyi temizlemesini söyleyen \033[2K
kontrol karakterini kullanmak mümkündür . Bunun avantajı, silmek istediğiniz karakter \b
sayısıyla eşleşmek zorunda olmamanız ve yeni satır eskiden daha kısaysa ekranda çıkacak karakterlerin olmamasıdır. bir.\b
\r
Aşağıda, bu soruya nasıl uygulanabileceğinin bir örneği verilmiştir ve işte bu, önyükleme iletilerine benzer bir çıktı oluşturmak için ilgili uygulamanın bir örneğidir. Bu özel örnekte, zamanlayıcı 0 saniyeye ulaşıldığında gider ve zamanlayıcı çizgisi "Hazır!" İle değiştirilir ifade.
#!/bin/bash
sek=60
echo "60 Seconds"
while ((sek--)); do
printf "One moment please: %d" "$sek"
sleep 1
printf "\r%b" "\033[2K"
done
echo "Ready!"
Diğer bir alternatif dialog
, komut satırında basit diyaloglar oluşturmak için komut kullanmak olacaktır . İletişim kutusu zamanlayıcı süresince ekranda kalır ve döngüle birlikte güncellenir ve bittiği zaman - zamanlayıcı sorunsuz bir şekilde "Hazır! Çıkmak için basın" mesajı ile değiştirilir:
#!/bin/bash
sek=60
echo "60 Seconds"
while ((sek--)); do
echo "$sek" | dialog --progressbox "Please wait" 10 25
sleep 1
done
dialog --msgbox "Ready! Press <OK> to finish" 10 25
watch
komutla yapmanın bir yolu olabilir , ancak tam olarak nasıl yapacağımdan emin değilim.