1. 14

Shell From Scratch

We build a shell in the style of the Bourne shell, Bash, zsh, etc. It supports (1) running commands with arbitrarily many arguments, (2) quoting those arguments, and (3) combining the commands into arbitrarily long pipelines where the output of one command becomes the input of the next. This requires writing a parser, which we do with Parslet, a PEG parser library.

This screen cast is free until midnight Pacific on 2017-09-08. After that, it will require a subscription.

  1. 3

    The author ran an earlier attempt at this screencast live at https://twitch.tv/gary_bernhardt one week ago.

    It was a fun time—the chat was very active.

    If you are interested at all I think it’s worth it to get a twitch account, following, and setting up notifications to get pinged when he goes live next (it can be in form of email or app notifications on mobile.)

    The programming community on twitch: https://twitch.tv/communities/programming

    1. 1

      Strangely familiar, yet so different to such a shell implemented in C.

      I noticed Gary calling * squat and @ spiral - is this a Ruby thing? It reminded me of INTERCAL‘s names for characters, but they aren’t the same.

      1. 1

        I think he called * a splat operator, which comes from Perl. The name comes from what the operator does – flatten a list like a bug.