# bash Output some comments from random source files at random intervals, followed by a randomly generated do-nothing progress bar. #!/bin/bash # The directory to extract source comments from srcdir=~/src/php-src/ # Generate a status bar that lasts a random amount of time. # The actual amount of time is somewhere between 1.5 and 30 # seconds... I think. I fudged this around so much it's hard to tell. function randstatus() { bsize=4096 r_rate=$(echo "$RANDOM/32767 * $bsize * 1.5 + $bsize / 4" | bc -l | sed 's/\..*$//') r_min=3 r_max=15 r_val=$(($r_min + $RANDOM % $(($r_max - $r_min)) )) i=0 dd if=/dev/urandom bs=$bsize count=$r_val 2> /dev/null | pv -L $bsize -s $(($r_val * bsize)) > /dev/null } # Picks a random .c file from the given directory, parses # out one-line comments, and outputs them one by one with a # random delay between each line. function randout() { r_file=$(find $1 -name '*.c' | sort -R | head -n 1) echo "# $r_file" grep '^\s*/\*.*\*/\s*$' $r_file | sed 's:[/\*]::g' | sed -e 's:^\s\+::' -e 's:\s\+$::' | sed -e 's:^\W\+::' | grep -v '^$' | while read line; do echo $line sleep $(printf "%0.2f" $(echo "$((($RANDOM%4)+1))/4" | bc -l)) done } while true; do randout $srcdir randstatus # sleep here to make it easier to break out of the 'while read' loop sleep 2 done Output: # /home/jerkface/src/php-src/sapi/fpm/fpm/fpm_shm.c Id: fpm_shm.c,v 1.3 20080524 17:38:47 anight Exp $ c) 2007,2008 Andrei Nigmatulin, Jerome Loyet MAP_ANON is deprecated, but not in macosx 32kB 0:00:08 [3.97kB/s] [====================================================================>] 100% # /home/jerkface/src/php-src/ext/mbstring/mb_gpc.c Id$ includes mbfl_no_encoding _php_mb_encoding_handler_ex() split and decode the query initialize converter auto detect convert encoding we need val to be emalloc()ed add variable to symbol table SAPI_POST_HANDLER_FUNC(php_mb_post_handler) 12kB 0:00:03 [4.02kB/s] [===============> ] 24% ETA 0:00:09