Leer, enviar y esperar
Cómo leer el historial de una terminal, enviar texto o una interrupción al proceso, y esperar una condición antes del paso siguiente.
Tres operaciones forman el ciclo de trabajo con cualquier proceso en la Terminal: leer lo que escribió, enviar lo que quieres y esperar a que llegue a un estado antes del paso siguiente. En la interfaz, las tres son gestos directos — desplazar, escribir, mirar. Por línea de comandos tienen contrato propio, y ese contrato es lo que hace predecible la automatización.
Leer el historial
En la interfaz, el historial es el propio contenido del panel: desplázate hacia atrás para ver lo que pasó.
Por línea de comandos, la lectura tiene tres modos, y elegir el modo correcto evita sorpresas:
| Modo | Qué devuelve | Cuándo usarlo |
|---|---|---|
| Página delimitada | Un bloque acotado, con el cursor para continuar desde ahí | Quieres seguir sin releer todo |
| Solo lo nuevo | Únicamente la salida desde una lectura anterior | Ya leíste hasta cierto punto y quieres lo que vino después |
| Sesión retenida completa | Todo lo que aún está guardado | Necesitas el contexto completo de lo que quedó |
Reglas que valen para todos los modos:
- Sin cursor y sin límite, la lectura pagina la sesión retenida y devuelve todo lo que existe.
- El cursor que devuelve una lectura es lo que pasas a la lectura siguiente para recibir solo lo nuevo.
- Hay techo por lectura y techo para la sesión completa. Cuando lo más antiguo ya fue descartado, el resultado lo dice en lugar de fingir completitud.
- Los modos son mutuamente excluyentes: pedir la sesión completa junto con un límite de líneas, o un límite de líneas junto con un cursor, es error de argumento.
- La lectura prioriza la pantalla viva. Si el proceso dibuja una interfaz de pantalla completa (un agente, un editor de terminal), la lectura legible muestra esa pantalla renderizada; el texto bruto sigue disponible en la lectura estructurada.
- Un panel sin sesión viva falla con aviso, en lugar de devolver una lectura vacía: el panel existe, pero no hay nada ejecutándose en él.
Enviar texto
- El texto puede venir directo en la llamada o de un archivo. Para textos de varias líneas, usa un archivo: las comillas del shell estropean saltos de línea y citas en un texto largo.
- Enviar no implica que se haya dado Enter ni que el proceso haya entendido: hay que pedir Enter explícitamente cuando quieres que la línea se envíe.
- Un envío rechazado falla el comando. Si la respuesta dice que el envío no fue aceptado, el paso siguiente no debe tratarse como si lo hubiera sido.
- Interrumpir es distinto de enviar. La interrupción entrega la señal de parada al proceso — es el equivalente de una cancelación, y puede interrumpir trabajo en curso de un agente.
Esperar antes de enviar
Escribir a un proceso que aún no está listo es la causa más común de texto mezclado. La espera existe para eso:
- Esperar a que el proceso termine — útil para comandos que terminan solos.
- Esperar a que la interfaz del agente quede ociosa — esto es lo que quieres antes de enviar el primer mensaje a un agente que acaba de subir.
- La espera tiene techo de tiempo y un valor predeterminado; si el techo es demasiado corto, la espera expira aunque el proceso siga vivo.
- Una condición no satisfecha falla el comando. Encadenar envío y espera sin mirar el resultado enmascara tanto un envío rechazado como una espera expirada.
Secuencia recomendada
- Crear la sesión (con el agente, si es el caso).
- Esperar la condición que dice que el proceso está listo.
- Leer lo que ya está en pantalla — es lo que confirma que la interfaz tomó el control.
- Enviar el texto, pidiendo Enter.
- Esperar de nuevo antes de leer el resultado.
- Leer solo lo nuevo, desde el cursor de la lectura anterior.
Por línea de comandos
Las opciones exactas de lectura, envío, interrupción y espera — incluidos los techos y los modos mutuamente excluyentes — están en Referencia de comandos de la Terminal.