Un aspecto de este problema no se trata realmente awk, y solo un poco sobre el shell. El problema es que, en un tty canónico estándar, la mayoría de las veces la disciplina de tty del kernel está amortiguando su entrada, simplemente haciéndola eco en su pantalla y en ningún otro lugar, para que pueda manejar eficientemente el retroceso y cosas por el estilo.
Sin embargo, cuando presiona Intro o ingresa una nueva línea, todos esos datos almacenados en el búfer se envían a la vez a la aplicación de lectura, generalmente su shell. Puede observar esto observando $PS2después de ingresar una cita pendiente. Cuando el shell se imprime $PS2es porque solo lee un bloque de su entrada y aún no está convencido de que haya terminado.
Por lo tanto, para mayor comodidad, lo que necesita es alguna forma de enviar una línea \nelectrónica al búfer de terminal sin tener que presionar toda esa otra entrada de inmediato. La forma estándar de hacerlo es con la secuencia de teclas CTRL+V, que cita para el terminal su próximo carácter de entrada. Hacer CTRL+Va continuación, CTRL+J- porque esta última es por lo general cómo escribir un literal \newline. Sabrás que funciona cuando no ves $PS2porque el shell todavía no ha leído tu entrada.
Nota sin embargo que cuando no leyó que la entrada de su anterior CTRL+Vhabrá hecho ninguna diferencia para la cáscara del todo - que sólo lo cita para la línea-disciplina. Definitivamente querrás citar la nueva línea para hacer algo significativo con ella.
Por cierto, CTRL+Vse puede aplicar útilmente de otras maneras, por ejemplo, "$(printf \\33)"no es la única forma de escribir un ESCpersonaje en un script de shell, y ni siquiera es la más simple. Literalmente, puede ingresar cualquier carácter que su teclado enviará sin que el controlador de entrada intente interpretarlo si primero lo escapa de esta manera.
A menudo me gusta usar <tab> s en la línea de comandos sin que el shell intente completar nada. Debido a que los shells que completan generalmente configurarán <tab> de una manera que stty eol \t, para que sus sistemas de finalización funcionen, CTRL+Vme funciona incluso en entornos desconocidos.