¿Cómo insertar un carácter de tabulación en un "diálogo"?

¿Cómo insertar un carácter de tabulación en un "diálogo"?

Estoy usando la utilidad de "diálogo" de Linux para crear una interfaz de usuario simple. Sin embargo, hay un texto en el cuadro de información y quiero insertar caracteres de tabulación para alinear correctamente el texto.

Pero parece que ese cuadro de diálogo no acepta el carácter de tabulación. Además, la opción --tab-correct no ayudó. Si escribo \t, aparece en \t en el cuadro de información.

dialog --title "Hello" --tab-correct --infobox "tab \t test" 20 100

Si inserto una pestaña en la cadena de comando:

dialog --title "Hello" --tab-correct --infobox "tab         test" 20 100

aparece como un solo espacio.

¿Hay alguna manera de insertar una pestaña en el texto del cuadro de información?

Respuesta1

Debes usar la --no-collapseopción, en lugar de --tab-correcte insertar pestañas literales en tu cadena, por ejemplo con

"star "$'\t'" end" 

o usando Ctrl- vy presionando la Tabtecla.

Respuesta2

Bueno, no conozco el diálogo, pero a veces en Linux, cuando \t no se interpreta como Tab, intenta

"`eco -e "\t"`"

Prueba esto:

declare -r TAB="`echo -e "\t"`"
echo -e "A${TAB}B"

Respuesta3

La cadena de comando que usted dice que aparece como un solo espacio aparece aquí como 8 espacios, no como una pestaña (pero tal vez sea StackExchange).

Depurar esto puede ser un poco complicado. Hay varias cosas que pueden o no "cocinar" las pestañas: el terminal, al insertar el carácter; el shell, al procesar la entrada; el modo de terminal subyacente (modo cocido frente a modo crudo) y, al final, el diálogo en sí.

Para hacer las cosas aún más confusas, si usa echo para generar una pestaña, o si de alguna otra manera genera una pestaña, todavía existe la posibilidad de que el emulador de terminal decida borrar eso.

Una pulsación de tecla que se ve comúnmente para escapar de este tipo de caracteres de control es C-v(es decir, Control+V, CTRL+V). Si presiona eso, entonces pestaña, es posible que se inserte una pestaña real. Aquí con GNU bashy urxvt, funciona.

Para depurar esto correctamente es necesario conocerexactamentecuál es el problema (es decir, qué se está comiendo la cuenta). Simplemente poner \t allí no funcionará a menos que cualquiera de ellos dialogo su shell tengan la función de traducir estas secuencias escapadas. Si los desea, siga el consejo de @Eran Ben-Natan y use echoel modo mejorado de GNU (otras implementaciones pueden diferir o diferirán; no hay un comportamiento específico especificado en POSIX (IEEE 1003.1 2008, página 2615, línea 84306)).

información relacionada