
Accidentalmente descubrí el paquete lolcat hoy.
Lo primero que pensé es: sería fantástico si pudiera canalizar todo lo que viene desde la salida estándar a la terminal a través de lolcat para obtener esos efectos de arcoíris. Imagínense las posibilidades de hacer bromas.
Básicamente, lo que estoy pidiendo es una forma de aplicar un comando a cada línea que sale de un indicador de bash para la salida estándar.
Respuesta1
Simplemente ejecuta bash así:fiesta | gato gracioso
Respuesta2
En una sesión de bash, quieres hacer
exec > >(lolcat)
No tengo esto instalado pero tengo una idea similar:
$ date
Sun Mar 22 20:01:23 EDT 2015
$ exec > >(rev)
$ date
5102 TDE 23:10:02 22 raM nuS
Respuesta3
Hice una extensión de shell para el generador de sitios web más rápido del mundo llamadoingenioso. Tiene un huevo de Pascua donde puedes activar la salida de lolcat para la mayoría de las cosas lolcat.on
(después de iniciar el shell con, por ejemplo nift sh
). Incluso obtendrá un resultado de arcoíris al presionar el tabulador para obtener posibles opciones de finalización, dudo que lo obtenga con otras soluciones sugeridas.
La extensión del shell es paraf++que es el lenguaje de programación incorporado, que tieneestosfunciones yestostipos disponibles. Pero cualquier cosa que no reconozca se ejecuta como una llamada al sistema usando el shell (probablemente primario/predeterminado) de su máquina (por lo tanto, lo llama una extensión de shell en modo shell REPL).
Nift buscará una versión de lolcat instalada en su máquina y, de lo contrario, utilizará una versión incorporada que debería ser la más rápida del mundo (es casi idéntica a mi implementación de C++).lolcat-ccque es el más rápido del mundo). Recomiendo encarecidamente instalar lolcat-cc (u otra versión de lolcat) encima de Nift, ya que de lo contrario estará ejecutando con frecuencia el binario Nift de ~5 mb para básicamente todas las llamadas al sistema, en lugar de un binario de <1 mb para lolcat.
f++ también es un lenguaje de programación algo interesante. Llevarestescript, por ejemplo, que crea y elimina 100k archivos de texto vacíos. En mi máquina esto se ejecuta en ~3,5 segundos mientras queeste¡¡El script Bash que hace esencialmente lo mismo lleva más de 3 minutos!! Algunas de las cosas interesantes que quizás ya hayas notado en ese script de f++ es que puedes expandir variables dentro de cadenas, puedes definir variables con tipos, puedes expandir variables a múltiples parámetros con llamadas a funciones, puedes tener MUCHOS más de 10k parámetros de entrada para llamadas a funciones (¡deberían poder tener millones!).
Puede encontrar más información sobre los REPL de Nift (incluidos accesos directos para diferentes plataformas)aquí.
Si necesita definir variables de shell (no a través de f++ sino del shell subyacente), necesitará hacer bloques de código usando la función sys/system. También puede crear bloques de código para Lua(JIT) y ExprTk de manera similar, ya que ambos están integrados en Nift. También puede usar Lua y ExprTk para acceder/modificar variables de f++.
Entonces, para obtener este shell (extensión). Instale Nift a través de un administrador de paquetes o clone, cree e instale desde GitHub. Ingrese nift sh
a su terminal para iniciar la extensión de shell Nift f++, luego ingrese lolcat.on
para activar la salida Rainbow.