The Shell as a Programming Language