Может ли снаряд быть более «оскорбительным»?


10

Мой Gentoo Linux скомпилирован с включенным оскорбительным USE- флагом :

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

Также возможно выбрать состояния на основе степени наступления:

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

Учитывая, что список ароматизированных элементов 1, приведенный в ссылке, является коротким - и я лично не использую пакет моделирования молекулярной динамики - есть ли еще что-то вроде специй в оболочке (ях) в Linux вообще (или UNIX)?


1- Это хорошо , чтобы помнить , что cowsayвыход может любой аргумент, а не только состояние, например вывод команды или сценарий: cowsay -s $(script_in_path_or_command). Примечание -s только для появления коровы здесь, см. Manpages.


apt-get moo и aptitude moo, aptitude moo -v, aptitude moo -vv и так далее. но это для Debian.
Ренан Висенте

1
Там должно быть особое оскорбление каждый раз, когда вы бежите sudo su -. Возможно, он должен просто изменить пароль пользователя root на sudo -i.
Дероберт

1
Кстати, я подумал о том, как сделать это в bash, используя тот же трюк, который я использую, чтобы раскрасить подсказку, основываясь на коде выхода, а также на команде Ubuntu not found stuff ... Я напишу и опубликую ее, как только вернусь домой.
Дероберт

1
Не слишком обидно, но в таком настроении: sl- Паровоз бежит по экрану, если вы
набираете

1
Ну, я пошла спать по возвращении домой, поэтому не удосужилась написать это до сегодняшнего дня ... но опубликовала в качестве ответа.
Дероберт

Ответы:


9

Хорошо, с помощью PS1и command_not_found_handle, возможно, bash оскорбляет вас:

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

И вот /tmp/insult.shчто я получал выше.

### 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\$ "; 
`'

@lightÉ, возможно, у вас более старая версия bash, но вы не знаете, когда эта функция была добавлена. Объявляет -n работает?
Дероберт

У меня 4.2.45 (1) -релиз. Так получилось, что у меня есть тонны pkg для обновления. Так что я попробую это под Arch позже! Спасибо, кажется забавным, мне нравится идея смешивать это! Ура!

@ подсветка 4.3.0 здесь, как возможно, что Debian имеет более новую версию bash, чем Gentoo? В любом случае, проверяя файл NEWS, это новая функция в 4.3. Я посмотрю о добавлении в версию, которая не нуждается в новой функции.
Дероберт

@ световое редактирование, надеюсь теперь будет работать с bash 4.2.
Дероберт

Спасибо, это действительно круто. Работает отлично! Но на самом деле Debian. Я проверил и действительно 4.3 еще не сделал это. О, кстати, я больше увлекался рассказом Барда, лол.

2

Кто-то упоминал sl. В программном обеспечении, подобном интерпретатору, который стремится к максимальной предсказуемости, неожиданность определенно считается чем-то «оскорбительным» в контексте. В руководстве также перечислены соответствующие опции:

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.

... и интересный баг :

BUGS
   It sometimes list directory contents.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.