Skip to content

hkbakke/bash-insulter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 

Repository files navigation

bash-insulter

Randomly insults the user when typing wrong command.

Change insults as needed :)

noob@bender:~ $ sl

  Y u no speak computer???

-bash: sl: command not found
noob@bender:~ $ gti status

  This is why nobody likes you.

-bash: gti: command not found
noob@bender:~ $ sp aux

  Go outside.

-bash: sp: command not found

Compatibility

  • Bash v4 and newer
  • Zsh

Installation

# Method 1 - know what you are doing
git clone https://github.com/hkbakke/bash-insulter.git bash-insulter
sudo cp bash-insulter/src/bash.command-not-found /etc/

# Method 2 - I don't care, insult me!
sudo wget -O /etc/bash.command-not-found https://raw.githubusercontent.com/hkbakke/bash-insulter/master/src/bash.command-not-found

Then source the file automatically for new logins by adding the following to /etc/bash.bashrc or any of the other locations where you can configure your shell automatically during login:

if [ -f /etc/bash.command-not-found ]; then
    . /etc/bash.command-not-found
fi

Login again and type some invalid commands for the effects to be visible.

Note: You will have to add the script to .zshrc if you are using zsh

Configuration

bash-insulter can be customized, or even be made polite and nice, by populating CMD_NOT_FOUND_MSGS or CMD_NOT_FOUND_MSGS_APPEND environment variables. The values should be arrays. CMD_NOT_FOUND_MSGS replaces the default messages, while CMD_NOT_FOUND_MSGS_APPEND appends more messages to the existing ones.

It is probably cleanest to source a file populating the environment variable as needed. In this example I create a file /etc/bash.command-not-found-messages with the following content:

CMD_NOT_FOUND_MSGS=(
    "You are so smart!"
    "You look pretty today!"
    "I don't know what to say"
)

Then source this file before you source the script:

if [ -f /etc/bash.command-not-found-messages ]; then
    . /etc/bash.command-not-found-messages
fi

if [ -f /etc/bash.command-not-found ]; then
    . /etc/bash.command-not-found
fi

Then logout and in again. The end result is that you will now use your messages instead of the default ones.

About

Insults the user when typing wrong command

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published