One thing that many people miss are parameter expansions. Those are in Posix, so pretty much any bare shell should be able to use that, too. So dash/bash/zsh/ksh…
echo Hello ${PLANET:-World}
to have a default if you're not sure a variable is set. Replace "-" with "=" to actually set it, not just use it for this statement.Or removing suffixes:
filename=/tmp/foobar.tar.gz
echo ${filename%.*} # -> /tmp/foobar.tar
echo ${filename%%.*} # -> /tmp/foobar
Saves you some useless sed/awk.I still wish the Linux shells (bash/zsh) would start to finally get some more features from friggin' ksh93.