¿Cuál es el propósito de la suspensión retrasada (Ctrl-Y) en Bash?

Pregunta:

La parte completa de la página de manual de Bash que es aplicable solo dice:

Si el sistema operativo en el que se ejecuta bash admite el control de trabajos, bash contiene funciones para usarlo. Escribir el carácter de suspensión (normalmente ^ Z, Control-Z) mientras se ejecuta un proceso hace que ese proceso se detenga y devuelve el control a bash. Escribir el carácter de suspensión retrasada (típicamente ^ Y, Control-Y) hace que el proceso se detenga cuando intenta leer la entrada de la terminal, y el control se devuelve a bash. El usuario puede entonces manipular el estado de este trabajo, usando el comando bg para continuarlo en segundo plano, el comando fg para continuar en primer plano o el comando kill para matarlo. A ^ Z entra en vigencia inmediatamente y tiene el efecto secundario adicional de hacer que se descarten los resultados pendientes y la escritura anticipada.

Nunca he usado CtrlY ; Acabo de enterarme de eso. Lo he hecho bien con CtrlZ (suspender) solamente.

Estoy tratando de imaginar lo que esta opción es para. ¿Cuándo sería útil?

(Tenga en cuenta que esta función no existe en todas las variantes de Unix. Está presente en Solaris y OpenBSD, pero no en Linux o FreeBSD. La configuración correspondiente es stty dsusp ).

Quizás menos subjetivamente: ¿Hay algo que se pueda lograr con CtrlY que no se pueda lograr con la misma facilidad con CtrlZ ?

Respuesta:

Del manual de 4BSD para csh :

A ^Z entra en vigor inmediatamente y es como una interrupción en el sentido de que la salida pendiente y la entrada no leída se descartan cuando se escribe. Hay otra tecla especial ^Y que no genera una señal de PARADA hasta que un programa intenta leerla (2). Esto se puede escribir con anticipación cuando haya preparado algunos comandos para un trabajo que desea detener después de haberlos leído.

Por lo tanto, el propósito es escribir varias entradas mientras se procesa la primera y hacer que el trabajo se detenga una vez que hayan terminado.

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım