## Exercise 1

 1. Let's dust off some of the knowledge we gained last week. Let's
    write a shell script. Since we learned some new commands today,
    let's also use those: we will compile a program.
 2. Write a shell script, ‹compile.sh› that does the following:
    
    ◦ create an empty directory, called ‹scratch›
    ◦ enter this newly created directory
    ◦ make a copy of ‹read.c›
    ◦ preprocess ‹read.c› into ‹read.i›
    ◦ compile ‹read.i› into ‹read.s›
    ◦ assemble ‹read.s› into ‹read.o›
    ◦ link ‹read.o› into ‹a.out›
    ◦ run the resulting program, ‹a.out›

 3. Normally, most of the steps would be done by ‹cc› automatically.
    But we are trying to learn about how ‹cc› works, which is why we
    do all those extra steps.
 4. To compensate for making you do these boring steps by hand, I'll
    teach you a cool trick. Write ‹set -x› near the start of your
    shell script (before any other commands it runs). This will make
    ‹sh› print every command as it is about to be executed by the
    shell script.

As usual with those exercises, feel free to volunteer. You may want
to review the instructions here:

    $ cat ../info/activity.txt

Let's get back to some C:

    $ cat args.c
