Saya menyalin kode di bawah ini dari beberapa sumber acak ke terminal saya dan berlari:
while sleep 1;
do tput sc;
tput cup 0 $(($(tput cols)-29));
date;
tput rc;
done &
Kode ini menunjukkan jam yang berjalan di sudut kanan atas terminal. Cuplikan bekerja dengan sangat baik dan persis melakukan apa yang saya inginkan, tetapi sekarang saya hanya ingin mengakhiri lingkaran ini dan menyingkirkan jam.
Saya juga perlu memahami kode di atas. Saya punya beberapa ide, karena saya tahu apa yang tput
dilakukan perintah, tetapi masih ada banyak titik yang saya tidak dapat hubungkan.
jobs
sesi untuk mendaftar pekerjaan latar belakang aktif dan kemudian meletakkannya di latar depan dengan mengetikfg <job number>
. Setelah ketik Ctrl + C untuk menghentikan loop tak terbatas ini. Skenario ini hanya berfungsi di terminal yang menjalankan cuplikan.Jawaban:
Anda dapat menjalankan
jobs
perintah di sesi Anda untuk membuat daftar pekerjaan latar belakang aktif dan kemudian meletakkannya di latar depan dengan mengetikfg <job number>
. Kemudian ketik Ctrl+ Cuntuk menghentikan loop tak terbatas ini.Skenario ini hanya berfungsi di terminal yang menjalankan cuplikan.
Penjelasan:
tput sc
- Menyimpan posisi kursor.tput cup 0 $(($(tput cols)-29))
- Pindahkan kursor ke posisi0
sumbu Y dan(count of screen columns minus 29)
sumbu X.date
- cukup cetak tanggal sekarang.tput rc
- mengembalikan posisi kursor.while sleep 1; ... do ... ; done
- loop dengan penundaan 1 detik.Ketik
help while
untuk tahu lebih banyak tentangwhile
loop in shell dan ikuti ke man 1 tput atau tldp tput doc untuk mengetahui cara kerja tput.sumber
kill %1
(atau nomor yang berbeda jika ada banyak pekerjaan) adalah alternatif untukfg
+Ctrl-C