| Comprar | Carrito | Buscar | cosaslibres.com cd / |
| ¿ Que es ? | Entretenimiento | Nosotros | Catalogo de Productos Linux | |||||||||||
| [#Linux|Software|Hardware] | [Kiosco|Links] | [Acerca|Buscar] | [Colombia|Hosting|Internacional] |
[ Preguntas frecuentes ] [ Visite nuestra Promoción vigente ]
5. Secuencias de escape ANSI: colores y movimientos del cursor5.1 ColoresComo se mencionó antes, las secuencias escape de caracteres no imprimibles tienen que encerrarse entre \[\033[ y \]. Para las secuencias de escape de color, también deben aparecer, seguidos además de una m minúscula. Si se prueba uno de los prompts siguientes en una xterm y resulta que no se ven los colores nombrados, compruebe su ~/.Xdefaults (y posiblemente sus hermanos) y busque líneas como XTerm*Foreground: BlanchedAlmond. Esto puede comentarse colocando un ! delante. Por supuesto, depende de qué emulador de terminal esté usando. Este es el lugar más probable en el que los colores de su terminal pueden ser redefinidos. Para incluir texto azul en el prompt El problema con este prompt es que el color azul que comienza con el código 34 no se retorna nunca al color habitual, por lo que cualquier texto que se teclee después del prompt será del mismo color que el prompt. Este es también un azul oscuro, así que combinarlo con el código de negrita puede resultar útil: Ahora el prompt es azul claro, y termina cambiando el color de nuevo a «nada» (el color que se tenía previamente de primer plano) Aquí está el resto de equivalencias de colores: También se pueden poner colores de fondo, usando 44 para fondo azul, 41 para fondo rojo, etc. No hay colores de fondo 'negrita'; se pueden usar combinaciones, como texto rojo claro sobre fondo azul \[\033[44;1;31m\], aunque parece que funciona mejor poner los colores separadamente (es decir, \[\033[44m\]\[\033[1;31m\]). Otros códigos disponibles incluyen 4: subrayado, 5: parpadeante, 7: inverso y 8: oculto. Nota: mucha gente (yo incluido), tienen fuertes objeciones al uso del atributo «parpadeo». Afortunadamente no funciona en ningún emulador de terminal que yo conozca - pero si que funciona en la consola. Y si alguien se preguntaba (como yo hice) «¿para qué sirve el atributo oculto?», yo he visto usarlo en un ejemplo de shell script (no en un prompt) que permitía introducir un password sin ser reflejado en la pantalla. Basado en el prompt elite2 del paquete bashprompt (que he modificado para funcionar mejor en una consola estándar, en lugar de con los tipos especiales de xterm necesarios para ver correctamente el original), este es un prompt que he usado mucho: Defino los colores como variables temporales del shell en favor de la legibilidad. Es más fácil trabajar así. La variable GRAD1 es una comprobación para determinar en qué terminal se está. Como la prueba para saber si se está en una xterm, solo es necesario llevarla a cabo una vez. El prompt es similar a esto, excepto el color Para recordar qué colores hay disponibles, uso el siguiente script que saca todos los colores por pantalla: 5.2 Movimiento del cursorLas secuencias de escape ANSI permiten mover el cursor por la pantalla a voluntad. Esto es más útil para interfaces de usuario a pantalla completa generados por shell scripts, pero también se pueden usar en prompts. Las secuencias de escape de movimientos son las siguientes: Los dos últimos códigos no están presentes en muchos emuladores de terminal. Los únicos que conozco que los soportan son xterm y nxterm, a pesar de que la mayoría de los emuladores de terminal están basados en el código de xterm. Por lo que yo sé, ni rxvt, kvt ni xiterm ni Eterm no soportan esto. La consola sí lo soporta. Pruebe a poner la siguiente línea de código en el prompt (está más claro lo que hace si el prompt está bastantes líneas más abajo que el tope superior de la terminal) echo -en "\033[7A\033[1;35m BASH \033[7B\033[6D" Esto debería mover el cursor 7 líneas hacia arriba de la pantalla, escribir la palabra BASH, y volver a su sitio habitual en el prompt. Esto no es un prompt, es solo una demostración de movimiento del cursor por la pantalla, usando color para enfatizar lo que se ha hecho. Salve lo siguiente en un fichero llamado clock: N.del T.: Este prompt es bastante sencillo, excepto por el hecho de que mantiene un reloj en la esquina superior derecha de la pantalla (incluso aunque se varíe de tamaño el terminal). Esto NO funcionará en los emuladores de terminal que he mencionado que no aceptan guardar y recuperar la posición del cursor. Si se intenta ejecutar este prompt en cualquiera de esos terminales, el reloj aparecerá correctamente, pero el prompt quedará encajado en la segunda línea del terminal. Véase la sección Prompt con Reloj Elegante e Inútil para un uso más extensivo de estos códigos. 5.3 Movimiento del cursor con tputComo ocurre con muchas cosas en unix, hay más de una forma de conseguir los mismos objetivos. Una utilidad llamada tput puede también usarse para mover el cursor por la pantalla, o devolver información acerca del estado del terminal. tput es menos flexible que las secuencias de escape ANSI para el posicionamiento del cursor: sólo se puede mover el cursor a una posición absoluta, no se puede mover con relación a la posición actual. Yo no uso tput, así que no voy a explicarlo en detalle. Consulte la página del manual y sabrá tanto como yo de tput. Página siguiente Página anterior Índice general Atención: Visite nuestro listado de productos de computadores, Linux y software libre aqui... |