I don't see a shell version, so below is mine (well...it is not strictly shell, as it uses sort, uniq, grep, sed, and comm). It's written as a filter that takes as input live cell coordinates (one cell per line, X and Y coordinates separated by white space), and outputs the live cells of the next generation.
If Hello World is inadequate, what canonical program would better serve to demonstrate the salient features of a programming language?
Must it use variables?
Must it have flow control?
Must it actually compute something?
Must it use non-primitive data structures?
Must it exhibit use of the language’s code organisation features?
These are some of the more generic properties that programs can have.
...
One suggestion (from David Pearce) was Conway’s Game of Life: a simple simulation of finite automata. This seems like a good demonstration of most of the properties.
For example, on this input:
the output is: Here is the code, for bash or similar shells: