Add A Random Quote Every time You Open A Terminal Window

May - 2022

This is the code I put into my ~/.zshrc file to pull a random quote at the top of my terminal each time I open a new one.

if [ "$(tput cols)" -gt 65 ]; then
    sort -R "/path/to/quotes.txt" | \
    head -1 | \
    sed 's/--/\n    --/' | \
    sed 's/$/\n/' | \
    fold -w 64 -s
    sort -R "/path/to/quotes.txt" | \
    head -1 | \
    sed 's/--/\n    --/' | \
    sed 's/$/\n/'                         


sort -R FILENAME randomized the lines in the file and sends them to STDOUT which pipes to:

head -1 which grabs the first line from the randomized set which pipes to

the sed things which split the line out to separate the quote from the author and then add extra line spacing

And then if there are more than 65 columns (as determine by if [ "$(tput cols)" -gt 65 ]) then things are piped to:

fold -w 64 -s

which wraps lines at 64 characters

The other thing I do is drop an empty file at ~/.hushlogin which prevents the message of the day from showing up. That way the only thing that shows in the quote.

Quotes are in the format:

Curiouser and curiouser! -- Alice
The death of an old person is like the burning of a library.  -- Traditional
Thank you for your patience during this emergency. -- Tech Support