21.6. Czyszczenie ekranu

Problem

Chcemy wyczyścić ekran w aplikacji z interfejsem w postaci konsoli.

Rozwiązanie

Wystarczy przechwycić wynik uniksowego polecenia clear w postaci tekstowej i wyświetlić go wtedy, gdy trzeba wyczyścić ekran:

#!/usr/bin/ruby -w
# clear_console.rb
clear_code = %x{clear}

puts 'Aby wyczyścić ekran, naciśnij Enter.'
$stdin.gets
print clear_code
puts "Ekran wyczyszczono!"

Dyskusja

Polecenie clear wyświetla sekwencję sterującą na standardowym urządzeniu wyjściowym. Terminal uniksowy interpretuje ją jako polecenie czyszczenia ekranu. Odpowiednia sekwencja zależy od typu terminala. W przypadku terminala ANSI ma ona następującą postać:

%x{clear}                   # => "\e[H\e[2J"

Aby wyczyścić ekran z poziomu skryptu Ruby, ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.