How to produce constant output in a Terminal window?
Pulling ideas from this unix.stackexchange.com Q&A about generating "hollywood" style terminal output.
The Slow Type
This script produces that delayed typing like effect you see in movies. Where the computer prints things in the terminal at some really awful and slow rate.
Save the following to a file named hollywood
:
#!/bin/bash
while IFS= read -r line; do
length="${#line}"
bol=1
for (( offset = 0 ; offset < length ; offset++ )); do
char="${line:offset:1}"
printf '%s' "$char"
if (( bol )) && [[ "$char" == " " ]]; then
continue
fi
bol=0
sleep 0.05
done
if (( length == 0 )); then
sleep 0.$(( RANDOM % 3 + 2 ))
else
sleep 0.$(( RANDOM % 7 + 3 ))
fi
printf '\n'
done
Set execute permissions on the file hollywood
:
chmod +x hollywood
And then pipe it the output from dmesg
to give it a large chunk of snazzy looking text to slowly print on the screen:
dmesg | hollywood
The Hex Dump
This dumps hex data to the screen. Looks impressive but is largely unintelligible to the masses.
hexdump -C /dev/urandom | GREP_COLOR='1;32' grep --color=auto 'ca fe'
The Matrix
Numbers. Numbers everywhere.
LC_CTYPE=C tr -c "[:digit:]" " " < /dev/urandom | dd cbs=$COLUMNS conv=unblock | GREP_COLOR="1;32" grep --color "[^ ]"
Unfortunately, with that one there isn't a good way to control the speed.
There's a better version of this available view Homebrew called cmatrix. You can install and run it with:
brew install cmatrix
cmatrix
If you have some files that are growing you can use tail -f
. For example
$ tail -f /var/log/system.log
There are several terminal tools similar to activity monitor, for example top (delivered with OS X) and htop (you will have to install it with MacPorts or Homebrew).
You could also download the sources of a large software package (e.g., gcc, OpenOffice) and then compile it. This will usually generate a lot of output on the console.
You could also generate huge directory listings
$ ls -lRt
or find
(the second one will delay each line by one second)
$ find .
$ find . -print -exec sleep 1 \;