Czy pocisk może być bardziej „ofensywny”?

10

Mój Gentoo Linux jest kompilowany z włączoną ofensywną flagą USE :

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

Możliwe jest również wybieranie fortuny na podstawie stopnia ofensywności:

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

Biorąc pod uwagę, że lista elementów smakowych 1 podana w łączu jest krótka - a ja osobiście nie używam pakietu do symulacji dynamiki molekularnej - czy jest więcej tego rodzaju przypraw w powłoce (powłokach) w systemie Linux (lub w systemie UNIX)?


1- Dobrze jest pamiętać, że cowsaywyjście może żadnego argumentu, a nie tylko majątek, na przykład wyjście polecenia lub skryptu: cowsay -s $(script_in_path_or_command). Uwaga -s jest tylko dla wyglądu krowy tutaj, patrz strony podręcznika.


źródło
apt-get moo i aptitude moo, aptitude moo -v, aptitude moo -vv i tak dalej. ale jest oparty na Debianie.
Renan Vicente
1
Za każdym razem, gdy biegniesz, powinna być specjalna zniewaga sudo su -. Być może powinien po prostu zmienić hasło roota na sudo -i.
derobert
1
BTW, wymyśliłem sposób na zrobienie tego w bashu, używając tego samego wyczynu, którego używam do pokolorowania monitu na podstawie kodu wyjścia, a także polecenia Ubuntu nie znalazłem rzeczy ... Napiszę i opublikuję, gdy wrócę do domu.
derobert
1
Niezbyt obraźliwe, ale w takim nastroju: sl- Lokomotywa parowa przejeżdża przez ekran, jeśli wpiszesz „sl” zamiast „ls”
Ouki
1
Po powrocie do domu poszłam spać, więc do dziś nie napisałam tego ... ale wysłałam odpowiedź.
derobert

Odpowiedzi:

9

Ok, używając PS1i command_not_found_handle, możliwe, że bash cię obraża:

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:~$ 

A oto, /tmp/insult.shczego szukałem powyżej.

### 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
źródło
@ illuminÉ może masz starszą wersję bash, nie jestem pewien, kiedy ta funkcja została dodana. Czy deklaracja -n działa?
derobert
Mam wydanie 4.2.45 (1). Tak się składa, że ​​mam mnóstwo pkg do aktualizacji. Wypróbuję to później pod Archem! Dzięki, wydaje się fajna, podoba mi się pomysł pomieszania tego! Twoje zdrowie!
@ Illuminé 4.3.0 tutaj, jak to możliwe, że Debian ma nowszą wersję niż Gentoo? W każdym razie, sprawdzając plik NEWS, jest to nowa funkcja w 4.3. Zobaczę o dodaniu wersji, która nie potrzebuje nowej funkcji.
derobert
Mam nadzieję, że edytor @ illuminÉ będzie teraz działał z wersją bash 4.2.
derobert
Dziękuję, to naprawdę świetna zabawa. Działa świetnie! Ale rzeczywiście Debian. I sprawdzone i rzeczywiście 4.3 nie dokonał jeszcze. Och, przy okazji, bardziej podobało mi się opowiadanie Barda, lol.
2

Ktoś wspomniał sl. W oprogramowaniu takim jak tłumacz, którego celem jest maksymalna przewidywalność, zaskoczenie z pewnością kwalifikuje się jako coś „obraźliwego” w kontekście. Podręcznik zawiera również odpowiednie opcje:

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.

... i ciekawy błąd :

BUGS
   It sometimes list directory contents.

źródło