¿Puede el caparazón ser más "ofensivo"?

10

Mi Gentoo Linux está compilado con el indicador USE ofensivo habilitado:

# sudo su -
Password: 
Hold it up to the light --- not a brain in sight!
Password: 

También es posible seleccionar fortunas en función del grado de ofensiva:

# fortune -o kernelcookies | cowsay -b
 _________________________________________ 
/ /* This is total bullshit: */           \
|                                         |
\ linux-2.6.6/drivers/video/sis/init301.c /
 ----------------------------------------- 
        \   ^__^
         \  (==)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Teniendo en cuenta que la lista de elementos con sabor 1 que se proporciona en el enlace es corta, y yo personalmente no uso un paquete de simulación de dinámica molecular , ¿hay más de ese tipo de especias en los shell en Linux en general (o UNIX)?


1- Es bueno recordar que cowsaypuede hacer salir ningún argumento, no sólo la fortuna, por ejemplo, la salida de un comando o secuencia de comandos: cowsay -s $(script_in_path_or_command). Nota -s es solo para la apariencia de la vaca aquí, vea las páginas de manual.


fuente
apt-get moo y aptitude moo, aptitude moo -v, aptitude moo -vv y así sucesivamente. pero es para Debian basado.
Renan Vicente
1
Debería haber un insulto especial por cada vez que corras sudo su -. Posiblemente debería cambiar la contraseña de root a sudo -i.
derobert
1
Por cierto, pensé en una manera de hacer esto en bash, usando el mismo truco que uso para colorear el indicador basado en el código de salida y también el comando de Ubuntu no encontró cosas ... Lo escribiré y lo publicaré una vez que llegue a casa.
derobert
1
No es demasiado ofensivo, pero con ese tipo de humor: sl- Una locomotora de vapor corre por la pantalla si escribe "sl" en lugar de "ls"
Ouki
1
Bueno, me fui a la cama al llegar a casa, así que no pude escribir esto hasta hoy ... pero publiqué como respuesta.
derobert

Respuestas:

9

Ok, usando PS1y command_not_found_handle, es posible que bash te insulte:

anthony@Watt:~$ . /tmp/insult.sh 
anthony@Watt:~$ sl
bash: sl: command not found, incompetent spoony bard
anthony@Watt:~$ ls /wrong/path
ls: cannot access /wrong/path: No such file or directory
Learn to type, second-rate Horrified Heron.
anthony@Watt:~$ 

Y aquí es /tmp/insult.shque obtuve más arriba.

### Data ###
bash_insulter_sentences=(
    'Have you considered Windows, %s?\n'
    'Learn to type, %s.\n'
    'Fell asleep at the keyboard again, %s?\n'
    "Failure is common when you're a %s, isn't it?\n"
)

bash_insulter_subjects=(
    'spoony bard'           # we all played this, right?
    'extra-Warty Warthog'
    'Dazed Drake'
    'Fidgety Fawn'
    'Horrified Heron'       # etc.
)

bash_insulter_adjectives=(
    'incompetent ' # these have built-in spacing
    'inept '
    'second-rate '
    '' # chance of none
    ''
)

### Functions to generate insults ###
bash_insulter_random_element() {
    if [ ${BASH_VERSINFO[0]} -lt 4 ] || \
        [ ${BASH_VERSINFO[0]} -eq 4 -a ${BASH_VERSINFO[1]} -lt 3 ]; then
        # bash before 4.3 doesn't have -n
        eval "local var=(\"\${$1[@]}\")"
    else
        local -n var="$1"
    fi
    local len=${#var[@]}
    echo -n "${var[$RANDOM % len]}" # Slightly biased. Don't care.
}

bash_insulter_full_subject() {
    bash_insulter_random_element bash_insulter_adjectives
    bash_insulter_random_element bash_insulter_subjects
}

bash_insulter_do_insult() {
    printf "$(bash_insulter_random_element bash_insulter_sentences)" "$(bash_insulter_full_subject)"
}

### set up ###
command_not_found_handle() {
    echo "bash: $1: command not found, $(bash_insulter_full_subject)"
    return 127
}

PS1='`
    if [ 0 -ne $? -a 127 -ne $? ]; then
        bash_insulter_do_insult
    fi
    echo "\u@\h:\w\$ "; 
`'
derobert
fuente
@ illuminÉ tal vez tengas una versión anterior de bash, no estoy seguro de cuándo se agregó esa característica. ¿Declara -n trabajo?
derobert
Tengo 4.2.45 (1) -lanzamiento. Sucede que tengo toneladas de paquetes para actualizar. ¡Así que intentaré esto debajo de Arch más tarde! Gracias allí, parece divertido, ¡me gusta la idea de mezclarlo! ¡Salud!
@ illuminÉ 4.3.0 aquí, ¿cómo es posible que Debian tenga una fiesta más nueva que Gentoo? De todos modos, revisando el archivo NEWS, es una nueva característica en 4.3. Veré sobre agregar una versión que no necesita la nueva función.
derobert
@ illuminÉ editado, espero que ahora funcione con bash 4.2.
derobert
Gracias, eso es realmente genial. ¡Funciona genial! Pero de hecho Debian. Lo comprobé y, de hecho, 4.3 aún no lo ha logrado. Oh, por cierto, estaba más metido en el cuento de Bard jajaja.
2

Alguien mencionó sl. En software como un intérprete que apunta a la máxima previsibilidad, la sorpresa ciertamente califica como algo "ofensivo" en su contexto. El manual también enumera las opciones apropiadas:

DESCRIPTION
   sl  is a highly advanced animation program for curing your bad habit of
   mistyping.

   -a     An accident is occurring. People cry for help.

   -l     Little version

   -F     It flies like the galaxy express 999.

   -c     C51 appears instead of D51.

... y un error interesante :

BUGS
   It sometimes list directory contents.

fuente