Odpowiedzi:
Możesz użyć, tput
aby przesunąć kursor do danej linii na ekranie, np.
tput cup 11 0
aby przenieść go do dwunastej linii (wartości liczą od zera).
Wzdłuż tych samych linii możesz użyć tput
do wyczyszczenia z tej pozycji do końca ekranu, korzystając z ed
możliwości. Łączenie,
tput cup 11 0 && tput ed
może być tym, czego chciał.
Jeśli chcesz przejść do znacznika połowy ekranu, pierwszy numer jest zwracany przez
stty size
jest (w większości systemów) liczbą rzędów ekranu. Dodanie tego do polecenia:
tput cup $(stty size|awk '{print int($1/2);}') 0 && tput ed
W clear
różni się od programu tput ed
:
Uwaga: na niektórych platformach tput ed
może nie działać z powodu problemów rozwiązanych dawno temu. W takich przypadkach aktualizacja konfiguracji curses / ncurses rozwiąże problem.
Jeśli liczba wierszy jest nieparzysta, tput cup
usuwa całą stronę.
napisanie tego w ten sposób powinno naprawić:
tput cup $(($(stty size|awk '{print $1}')/2)) 0 && tput ed
Jeśli chcesz wyczyścić dolną połowę ekranu, zachowując resztę, zadziała to:
half=$(stty size | awk '{print int($1/2)-1;}'); for i in `seq ${half}`; do echo '' ; done && tput cup ${half} 0 && tput ed
EDYCJA: Aby wyjaśnić, jeśli uruchomisz seq $(stty size | cut -d' ' -f1)
inne odpowiedzi, opuścisz pierwszą połowę wyniku, podczas gdy to polecenie opuści drugą połowę (tj. Najnowszą odpowiedź).