2012-03-20 14 views
10

En Ruby I tienen las siguientes:Ruby - Hide "^ C" en la interrupción

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

Cuando interrumpir el programa, se imprime la siguiente (Mac OSX Lion):

^CShutting abajo ...

¿Hay alguna manera de ocultar ^C desde dentro de Ruby?

+3

Comience el mensaje de salida con una 'C' (algo como 'Enlace de cierre ...') y luego omita la 'C' :) (Aun así tendría el '^') – itdoesntwork

Respuesta

9

Si los caracteres de control se repiten es una propiedad del tty que está utilizando. stty -echoctl es la forma de Unix de deshabilitar el eco de los caracteres de control. Puede ejecutar este comando desde su script Ruby y lograr el mismo efecto si está usando un sistema Unix-ish.

3

He encontrado que en mis programas de Python en los terminales Linux y Mac OS X puedo ocultar el^C comenzando el mensaje con un retorno de carro (\ r). Se siente como un truco pero funciona bien.