Break the Monotony of Scrolling Text With ripple.sh

Monitoring events in the console can be tedious, especially if the text looks mostly the same. Here’s a script that makes the movement easier to see.


Repetitive console output looks like this:


From 192.168.4.107 icmp_seq=64 Destination Host Unreachable
From 192.168.4.107 icmp_seq=65 Destination Host Unreachable
From 192.168.4.107 icmp_seq=66 Destination Host Unreachable
From 192.168.4.107 icmp_seq=67 Destination Host Unreachable
From 192.168.4.107 icmp_seq=68 Destination Host Unreachable
From 192.168.4.107 icmp_seq=69 Destination Host Unreachable
From 192.168.4.107 icmp_seq=70 Destination Host Unreachable
From 192.168.4.107 icmp_seq=71 Destination Host Unreachable
From 192.168.4.107 icmp_seq=72 Destination Host Unreachable
From 192.168.4.107 icmp_seq=73 Destination Host Unreachable
From 192.168.4.107 icmp_seq=74 Destination Host Unreachable
From 192.168.4.107 icmp_seq=75 Destination Host Unreachable
From 192.168.4.107 icmp_seq=76 Destination Host Unreachable
From 192.168.4.107 icmp_seq=77 Destination Host Unreachable
From 192.168.4.107 icmp_seq=78 Destination Host Unreachable
From 192.168.4.107 icmp_seq=79 Destination Host Unreachable
From 192.168.4.107 icmp_seq=80 Destination Host Unreachable
From 192.168.4.107 icmp_seq=81 Destination Host Unreachable
From 192.168.4.107 icmp_seq=82 Destination Host Unreachable
From 192.168.4.107 icmp_seq=83 Destination Host Unreachable
From 192.168.4.107 icmp_seq=84 Destination Host Unreachable
From 192.168.4.107 icmp_seq=85 Destination Host Unreachable
From 192.168.4.107 icmp_seq=86 Destination Host Unreachable
From 192.168.4.107 icmp_seq=87 Destination Host Unreachable

Unless you squint at the screen, it can be difficult to tell how fast things are scrolling by. Have they stalled?

ripple.sh solves this problem in 2 ways.

  1. For every screen’s worth of text that it receives on stdin, it inserts a blank line (stderr) into the output on stdout.
  2. If text is coming in too quickly for the blank lines to be visible, it blanks the screen for one tenth of a second every second.

It’s meant to be used as follows:

$ ping somehost.com | ripple.sh
$ yes | ripple.sh