shrep lets you run a shell command repeatedly, or until it fails. It's intended for diagnosing intermittent failures -- e.g. say you have a C program that seg faults once every hundred runs or so, and you need to reproduce it to fix it:

shrep 100 ./myprog

shrep can also run your program until it fails rather than a fixed number of repetitions. It can capture stdout and stderr to avoid cluttering your terminal. It can run child processes in parallel. See the man page for the full story:

groff -man -Tascii shrep.1 | less

Building, installing, etc.

shrep is currently a single-file Python script, and I haven't bothered with any packaging, installation, etc.

To install it to your personal bin directory:

cp -p shrep.py ~/bin/shrep


Find a bug? Want to implement a feature? Send me email! If a lot of people like it, I'll put it on github or bitbucket or something.