Saya memiliki yang berikut di Bash (Di Linux)
for dir in Movies/*
do
(cd "$dir" && pwd|cut -d \/ -f5|tr -s '\n' ', ' >> ../../movielist &&
exiftool * -t -s3 -ImageSize -FileType|tr -s '\t' ',' >> ../../movielist )
echo "Movie $movies - $dir ADDED!"
let movies=movies+1
done
Tapi saya ingin membuatnya sehingga "echo" menunjukkan echo berikut pada baris berikutnya (Tidak digabungkan dengan output echo terakhir tetapi menggantinya) sehingga membuatnya terlihat seperti sedang diupdate. Mirip dengan bagaimana bilah kemajuan dengan persen akan ditampilkan pada baris yang sama.
printf a; printf b
keluaranab
---printf a\\r; printf b
keluaranb
---printf a\\r; sleep 1; printf b
keluarana
, kemudianb
Jika saya sudah mengerti dengan baik, Anda bisa mendapatkannya dengan mengganti echo Anda dengan baris berikut:
Berikut adalah contoh kecil yang dapat Anda jalankan untuk memahami perilakunya:
sumber
K
itu tidak perlu dan ternyata dikeluarkan seperti huruf K.Jawaban lainnya cukup bagus, tetapi hanya ingin menambahkan beberapa informasi tambahan jika seseorang datang ke sini mencari solusi untuk mengganti / memperbarui gema multiline.
Jadi saya ingin berbagi contoh dengan Anda semua. Skrip berikut telah dicoba pada sistem CentOS dan menggunakan perintah "timedatectl" yang pada dasarnya mencetak beberapa informasi waktu rinci dari sistem Anda.
Saya memutuskan untuk menggunakan perintah itu karena outputnya berisi banyak baris dan berfungsi dengan sempurna untuk contoh di bawah ini:
Di atas akan mencetak hasil "
timedatectl
" selamanya dan akan menggantikan gema sebelumnya dengan hasil yang diperbarui.Saya harus menyebutkan bahwa kode ini hanya sebuah contoh, tetapi mungkin bukan solusi terbaik untuk Anda tergantung pada kebutuhan Anda. Perintah serupa yang melakukan hal yang hampir sama (setidaknya secara visual) adalah "
watch -n 3 timedatectl
".Tapi itu cerita yang berbeda. :)
Semoga membantu!
sumber
Ini sangat berguna, silakan coba dan ubah sesuai kebutuhan.
sumber
Anda dapat mencoba ini .. Versi saya sendiri ..
sumber
Cara favorit saya disebut do the sleep to 50. di sini
i
variabel perlu digunakan di dalam pernyataan echo.sumber