martes, 26 de enero de 2016

Probando algunos diseños de prompt alternativos

Con esta lista de caracteres especiales, podemos cambiar el prompt para ver el efecto. Primero, haremos una copia de seguridad de la cadena existente para poder recuperarla más tarde. Para hacer esto, copiaremos la cadena existente en otra variable de shell que agregaremos nosotros mismos:

[me@linuxbox ~]$ ps1_old="$PS1"

Creamos una nueva variable llamada ps1_old y le asignamos el valor PS1. Podemos verificar que la cadena ha sido copiada usando el comando echo:

[me@linuxbox ~]$ echo $ps1_old
[\u@\h \W]\$

Podemos recuperar el prompt original en cualquier momento de nuestra sesión de terminal simplemente revirtiendo el proceso:

[me@linuxbox ~]$ PS1="$ps1_old"

Ahora que estamos listos para seguir, veamos que ocurre si tenemos una cadena de prompt vacía:

[me@linuxbox ~]$ PS1=

Si no asignamos nada a la cadena de prompt, no tendremos nada. ¡Ninguna cadena de prompt! El prompt está ahí, pero no muestra nada, tal como le pedimos. Como así es un poco desconcertante, la reemplazaremos por un prompt minimalista:

PS1="\$ "

Así está mejor. Al menos ahora podemos ver que estamos haciendo. Fíjate el espacio en blanco dentro de las comillas. Esto nos proporciona un espacio entre el signo del dólar y el cursor cuando se muestre el prompt.

Añadamos un tono a nuestro prompt:

$ PS1="\[\a\]\$ "

Ahora deberíamos escuchar un beep cada vez que se muestre el prompt. Esto podría volverse molesto, pero podría ser util si necesitamos que nos notifique cuándo un comando, con un trabajo especialmente largo, ha sido ejecutado. Fijate que hemos incluido las secuencias \[ y \]. Como el tono ASCII (\a) no se “imprime”, o sea, no mueve el cursor, necesitamos decírselo a bash para que pueda determinar correctamente la longitud del prompt.

A continuación, probemos a hacer un prompt informativo con información sobre el nombre del host y la hora:

$ PS1="\A \h \$ "
17:33 linuxbox $

Añadir la hora a nuestro prompt será útil si necesitamos seguir la pista a la hora en que se han realizado ciertas tareas. Finalmente, haremos un nuevo prompt similar al original:

17:37 linuxbox $ PS1="<\u@\h \W>\$ "
<me@linuxbox ~>$

Prueba otras secuencias de la lista anterior a ver si puedes conseguir un nuevo y brillante prompt.

No hay comentarios:

Publicar un comentario