2012-03-20 16 views
10

W Ruby I mają następujące:Ruby - ukrywania "^ C" Przerwanie

# Trap Interrupts 
trap("INT") do 
    puts "Shutting down..." 
    exit 
end 

Kiedy przerwanie programu następuje drukowana (Mac OS X Lew)

^CShutting w dół ...

Czy istnieje sposób na ukrycie ^C z poziomu Ruby?

+3

Rozpocznij komunikat wyjściowy z "C" (coś w rodzaju 'Zamykanie łącza ...'), a następnie pomijając "C" :) (Nadal miałby jednak '^') – itdoesntwork

Odpowiedz

9

To, czy znaki sterujące są odtwarzane, jest właściwością używanego tty. stty -echoctl to uniksowy sposób wyłączania echa znaków sterujących. Możesz uruchomić to polecenie z poziomu skryptu Ruby i osiągnąć ten sam efekt, jeśli używasz systemu Unix-ish.

3

Zauważyłem, że w programach napisanych w języku Python na terminalach Linux i Mac OS X mogę ukryć^C, rozpoczynając wiadomość od znaku powrotu karetki (\ r). To wygląda jak włamanie, ale działa dobrze.

Powiązane problemy