Pragmatic summary of shells

2023-03-26

The ones in bold are the ones you might run into in day-to-day software. The others, you might notice occasionally in old documents. This is probably incorrect (I was not around when the majority of these were written), but maybe helpful.

I categorise the following as "POSIX-compatible shells". The subset of functionality that's possible in POSIX sh is fairly limited, but worth being familiar with, since they will run pretty much everywhere.

The following are not compatible with POSIX sh, but have more user-friendly features or customisation. Typically people will use these as their "main interface", but continue to write scripts in POSIX sh or bash.

The following are some wild new approaches to shells that haven't hit the mainstream yet.

Alternative reading: