Kosongkan setengah layar dari baris perintah


11

Apakah ada cara untuk menghapus terminal tetapi bukannya meninggalkan prompt di bagian atas layar dan membiarkannya di tengah? Sepertinya clearpada dasarnya mengabaikan semua parameter baris perintah.

Saya pikir akan ada beberapa cara untuk melakukan ini dengan tputtetapi tidak dapat menemukannya.

Jawaban:


12

Anda dapat menggunakan tputuntuk memindahkan kursor ke baris yang diberikan di layar, misalnya,

tput cup 11 0

untuk memindahkannya ke baris kedua belas (nilai dihitung dari nol).

Di sepanjang garis yang sama, Anda dapat menggunakan tputuntuk menghapus dari posisi itu ke ujung layar, menggunakan edkapabilitas. Menggabungkan,

tput cup 11 0 && tput ed

mungkin apa yang diinginkan.

Jika Anda ingin pergi ke tanda setengah di layar, angka pertama dikembalikan oleh

stty size

adalah (pada kebanyakan sistem) jumlah baris layar. Menambahkan itu ke perintah:

tput cup $(stty size|awk '{print int($1/2);}') 0 && tput ed

The clearProgram berbeda dari tput ed:

  • itu memindahkan kursor ke posisi home (kiri atas) dan
  • membersihkan dari titik itu ke ujung layar.

Peringatan: pada beberapa platform tput edmungkin tidak berfungsi karena masalah telah diperbaiki sejak lama. Dalam kasus tersebut, meningkatkan konfigurasi kutukan / ncurses Anda akan memperbaiki masalah.


di unix, ini tidak menghapus teks untuk saya, tetapi memindahkan kursor
James Owers

1
Kedengarannya seperti bug yang diperbaiki sepuluh tahun yang lalu. Mungkin sudah waktunya untuk memperbarui.
Thomas Dickey

0

Jika jumlah baris ganjil maka tput cuphapus seluruh halaman.
menulisnya seperti ini harus memperbaikinya:

tput cup $(($(stty size|awk '{print $1}')/2)) 0 && tput ed

-1

Jika Anda tertarik untuk mengosongkan bagian bawah layar sambil mempertahankan sisanya, maka ini akan berhasil:

half=$(stty size | awk '{print int($1/2)-1;}'); for i in `seq ${half}`; do echo '' ; done && tput cup ${half} 0 && tput ed

EDIT: Untuk memperjelas, jika Anda menjalankan seq $(stty size | cut -d' ' -f1)jawaban lain akan meninggalkan bagian pertama dari output, sedangkan perintah ini akan meninggalkan bagian kedua (yaitu keluaran terbaru).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.