command-line – Cómo señalar el final de la entrada stdin

Pregunta:

  1. En Bash, aprendí que la señal de finalización se puede cambiar con este documento. Pero, de forma predeterminada, ¿cómo puedo señalar el final de la entrada stdin ?
  2. Descubrí que con cat y chardet , sus entradas stdin se pueden señalar como terminadas con Ctrl + D. Pero creo recordar que Ctrl + D y Ctrl + C son similares a finalizar la ejecución de un comando en ejecución. Entonces, ¿estoy equivocado?

Respuesta:

Ctrl + D , cuando se escribe al comienzo de una línea en un terminal, significa el final de la entrada. Esto no es una señal en el sentido de Unix: cuando una aplicación está leyendo desde el terminal y el usuario presiona Ctrl + D , se notifica a la aplicación que se ha alcanzado el final del archivo (como si estuviera leyendo de un archivo y había pasado el último byte).

Ctrl + C envía una señal, SIGINT . Por defecto, SIGINT (la señal de interrupción) mata la aplicación en primer plano, pero la aplicación puede captar la señal y reaccionar de alguna manera diferente (por ejemplo, el propio shell capta la señal y aborta la línea que ha comenzado a escribir, pero no lo hace ' t salir, muestra un nuevo indicador y espera una nueva línea de comando).

Puede cambiar los caracteres asociados con el final del archivo y SIGINT con el comando stty , por ejemplo, stty eof a haría a final de archivo, y stty intr ^- deshabilitaría el carácter SIGINT. Rara vez resulta útil.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım