Чи може оболонка бути більш "образливою"?


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). Примітка - це лише для появи корів тут, дивіться набори.


apt-get moo та aptitude moo, aptitude moo -v, aptitude moo -vv тощо. але це для Debian.
Ренан Вісенте

1
Кожен раз, коли ти біжиш, має бути особлива образа sudo su -. Можливо, він повинен просто змінити пароль на root sudo -i.
derobert

1
До речі, я придумав спосіб зробити це в bash, використовуючи той же трюк, який використовую для фарбування підказки на основі коду виходу, а також команда Ubuntu не знайшла речі ... Напишу і опублікую його, як тільки я повернуся додому.
дероберт

1
Не надто образливий, але в такому настрої: sl- паровий локомотив біжить по екрану, якщо ви наберете "sl" замість "ls"
Ouki,

1
Добре, я лягав спати, повертаючись додому, тому не обійшовсь написати це до сьогоднішнього дня ... але опублікував як відповідь.
дероберт

Відповіді:


9

Гаразд, використовуючи PS1і command_not_found_handle, можливо, баш образити вас:

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

@ iluminÉ, можливо, у вас є старша версія bash, не впевнений, коли ця функція була додана. Чи оголошує -на роботу?
дероберт

У мене 4.2.45 (1) -випуск. Так трапляється, у мене є тони кг на оновлення. Тож я спробую це під Аркою пізніше! Спасибі там, здається веселим, мені подобається ідея змішати його! Ура!

@ iluminÉ 4.3.0 тут, як можливо, що у Debian є новіший баш, ніж Gentoo? У будь-якому разі, перевіряючи файл NEWS, це нова функція в 4.3. Я побачу про додавання до версії, яка не потребує нової функції.
дероберт

@ IlluminÉ відредагований, сподіваємось, тепер буде працювати з bash 4.2.
дероберт

Дякую, це вибух справді коханий. Чудово працює! Але дійсно Debian. Я перевірив і дійсно 4.3 ще не зробив цього. О, btw, я був більше в казці Барда, хай.

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.