2016-04-03 5 views
0

In Windows muss ich cls verwenden, um die Konsole zu löschen, in Linux nur clear!Wie kann ich Befehle von mehr als einem Betriebssystem in Ruby verwenden?

Gibt es eine Funktion wie:

system("cls") oder system("clear")

+0

möglich Duplikat von [Wie kann ich das Terminal in Ruby löschen?] (Https://stackoverflow.com/questions/3170553/how-can-i-clear-the-terminal-in-ruby/) – cremno

+1

Oh, Es scheint keine gute Antwort zu geben. Wenn Sie das Juwel 'curses' nicht installieren möchten, verwenden Sie [ANSI-Escape-Codes] (https://en.wikipedia.org/wiki/ANSI_escape_code): 'print '\ e [H \ e [2J" '. Es ist jedoch nicht so tragbar. – cremno

Antwort

0

Nö, eine bereits geschrieben Methode für beide nicht in Ruby nativen Bibliotheken nicht vorhanden ist. Allerdings können Sie so etwas tun:

module OS 
    def OS.windows? 
    (/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) != nil 
    end 

    def OS.mac? 
    (/darwin/ =~ RUBY_PLATFORM) != nil 
    end 

    def OS.unix? 
    !OS.windows? 
    end 

    def OS.linux? 
    OS.unix? and not OS.mac? 
    end 
end 

dann:

def clear_console 
    if OS.windows? 
     system("cls") 
    else 
     system("clear") 
    end 
end 

Kredit geht an Aaron Hinni für das OS Modul.

Verwandte Themen