Let's break down gradescript 61:
rm -f f0.txt f1.txt f2.txt f3.txt f4.txt
This is pretty obvious -- deletes those files if they exist.
awk -f /home/plank/cs360/labs/lab8/Gradescript-Examples/fun-awk-1.txt < /home/plank/cs360/labs/lab8/Gradescript-Examples/Input-File-8.txt |
         sort -r |
         sort -r |
         sed s/a/aa/g |
         sort |
         sed s/o/oo/g |
         sed s/o/oo/g |
         sed s/1/11/g > f0.txt
So, we're running the awk script in /home/plank/cs360/labs/lab8/Gradescript-Examples/fun-awk-1.txt:

	{ l++
          if (l %2 == 0) {
            print $0
            print last
          }
          last = $0
         }
END	{ if (l%2 == 1) print $0 }

That flips every two lines if the input file. The sed scripts just do string substitutions. In other words, there's noting fancy going on with this line except a boatload of piped commands converting Input-File-8.txt to f0.txt.

The next four commands do the same kinds of things to create f1.txt through f4.txt:

sed s/o/oo/g < /home/plank/cs360/labs/lab8/Gradescript-Examples/Input-File-3.txt |
         sed s/o/oo/g |
         sed s/1/11/g |
         cat -n |
         sed s/a/aa/g |
         awk -f /home/plank/cs360/labs/lab8/Gradescript-Examples/fun-awk-2.txt |
         sort -r |
         sed s/1/11/g |
         sort |
         sed s/o/oo/g > f1.txt
awk -f /home/plank/cs360/labs/lab8/Gradescript-Examples/fun-awk-2.txt < /home/plank/cs360/labs/lab8/Gradescript-Examples/Input-File-9.txt |
         sort -r |
         awk -f /home/plank/cs360/labs/lab8/Gradescript-Examples/fun-awk-3.txt > f2.txt
sort -r < /home/plank/cs360/labs/lab8/Gradescript-Examples/Input-File-5.txt |
         awk -f /home/plank/cs360/labs/lab8/Gradescript-Examples/fun-awk-1.txt |
         awk -f /home/plank/cs360/labs/lab8/Gradescript-Examples/fun-awk-3.txt |
         sed s/1/11/g |
         sed s/a/aa/g |
         sort -r |
         cat -n |
         awk -f /home/plank/cs360/labs/lab8/Gradescript-Examples/fun-awk-2.txt |
         awk -f /home/plank/cs360/labs/lab8/Gradescript-Examples/fun-awk-3.txt > f3.txt
sed s/a/aa/g < /home/plank/cs360/labs/lab8/Gradescript-Examples/Input-File-2.txt |
         sed s/a/aa/g |
         cat -n |
         sed s/1/11/g |
         sed s/o/oo/g |
         cat -n |
         cat -n |
         sed s/a/aa/g |
         awk -f /home/plank/cs360/labs/lab8/Gradescript-Examples/fun-awk-1.txt |
         sed s/o/oo/g > f4.txt
Now, the next sequence of commands either call thisprogramdoesnotexist, which doesn't exist, or they call strays-sleep, which as outlined in the lab writeup, sleeps for 0.20 seconds, then works like cat, except it checks to make sure that there are no extraneous open file descriptors. The strays-sleep calls are going in the background. The thisprogramdoesnotexist should fail on their execve calls, and there should be error statements going to standard error.
thisprogramdoesnotexist 
/home/plank/cs360/labs/lab8/strays-sleep < /home/plank/cs360/labs/lab8/Gradescript-Examples/Input-File-7.txt >> f0.txt &
thisprogramdoesnotexist 
/home/plank/cs360/labs/lab8/strays-sleep < /home/plank/cs360/labs/lab8/Gradescript-Examples/Input-File-0.txt >> f1.txt &
/home/plank/cs360/labs/lab8/strays-sleep < /home/plank/cs360/labs/lab8/Gradescript-Examples/Input-File-4.txt >> f2.txt &
thisprogramdoesnotexist 
/home/plank/cs360/labs/lab8/strays-sleep < /home/plank/cs360/labs/lab8/Gradescript-Examples/Input-File-6.txt >> f3.txt &
thisprogramdoesnotexist &
/home/plank/cs360/labs/lab8/strays-sleep < /home/plank/cs360/labs/lab8/Gradescript-Examples/Input-File-1.txt >> f4.txt &
Now, we cat the files. Because the strays-sleep calls sleep first, at the point where we call cat below, they will not have executed.
cat f0.txt f1.txt f2.txt f3.txt f4.txt
So, for example, f0.txt should have the same number of lines as /home/plank/cs360/labs/lab8/Gradescript-Examples/Input-File-8.txt, and it should not have anything from Input-File-7.txt tacked on to the end of it.

How do we test that to make sure that our output is correct? Run the gradescript, and when you see the command that it calls, cut and paste it and execute it:

UNIX> $clab3/lab8/gradescript 61
Problem 061 is correct.

Test: sh -c './jsh3 - < /home/plank/cs360/labs/lab8/Gradescript-Examples/061-input.txt > tmp-061-test-stdout.txt 2>tmp-061-test-stderr.txt'
UNIX> sh -c './jsh3 - < /home/plank/cs360/labs/lab8/Gradescript-Examples/061-input.txt > tmp-061-test-stdout.txt 2>tmp-061-test-stderr.txt'
UNIX> 
Now, take a look at Input-File-8.txt, Input-File-7.txt, and Input-File-3.txt:
UNIX> cat /home/plank/cs360/labs/lab8/Gradescript-Examples/Input-File-8.txt
Jack the Rabbit and Weak Knees Willie you know they're gonna be there
Ah sloppy Sue and Big Bones Billie they'll be comin' up for air
We're gonna play some pool, skip some school, act real cool
Stay out all night it's gonna feel alright
So Rosie come out tonight, Oh baby come out tonight
Windows are for cheaters, chimneys for the poor
Oh closets are for hangers, winners use the door
So use it Rosie, that's what its there for
UNIX> cat /home/plank/cs360/labs/lab8/Gradescript-Examples/Input-File-7.txt
I've been working on it baby
I've been thinking about it you see,
I've been trying to call you all day long but, you see,
I don't have your phone number, honey
UNIX> cat /home/plank/cs360/labs/lab8/Gradescript-Examples/Input-File-3.txt
Strolling slowly towards the sun
Soothing every wave that comes
dressed in love she lives for life to be
feels like I never see
Setting suns and lonely lovers free

UNIX> 
And take a look at the first ten lines of standard out from your shell command:
UNIX> head -n 10 tmp-061-test-stdout.txt
Ah slooooppy Sue aand Big Boooones Billie they'll be coooomin' up foooor aair
Jaack the Raabbit aand Weaak Knees Willie yoooou knoooow they're goooonnaa be there
Oh cloooosets aare foooor haangers, winners use the doooooooor
Soooo Roooosie coooome oooout toooonight, Oh baaby coooome oooout toooonight
Soooo use it Roooosie, thaat's whaat its there foooor
Staay oooout aall night it's goooonnaa feel aalright
We're goooonnaa plaay soooome pooooooool, skip soooome schooooooool, aact reaal cooooooool
Windoooows aare foooor cheaaters, chimneys foooor the poooooooor
11 toooooooowaards Stroooooooolling the sloooooooowly sun 
2 waave Soooooooooooooooothing thaat every coooooooomes 
UNIX> 
The first 8 lines should come from f0.txt, because of that first shell command. However, the second shell command involving f0.txt -- the one below:
/home/plank/cs360/labs/lab8/strays-sleep < /home/plank/cs360/labs/lab8/Gradescript-Examples/Input-File-7.txt >> f0.txt &
should not have completed at the point where cat was called. So line 9 of standard output should not have any of those lines from Input-File-7.txt. If you examine it, line nine is "11 toooooooowaards Stroooooooolling the sloooooooowly sun", which is derived from Input-File-3.txt. That's good, because the command which created f1.txt did it from Input-File-3.txt.

Looks like we're putting a "Hi" at the end of standard output, and then we call sleep 1:

echo Hi
sleep 1
The sleep command waits for all of those strays-sleep commands above to finish. Were we to cat f0.txt at this point it would have the same 8 lines as above, but it would also have the lines from Input-File-7.txt.

Now, we make a bunch of those strays-sleep calls, which again check for extraneous open file descriptors, but also append those fx.txt files to each other:

/home/plank/cs360/labs/lab8/strays-sleep < f1.txt >> f2.txt
/home/plank/cs360/labs/lab8/strays-sleep < f2.txt >> f3.txt
/home/plank/cs360/labs/lab8/strays-sleep < f3.txt >> f4.txt
/home/plank/cs360/labs/lab8/strays-sleep < f4.txt >> f0.txt
Finally, we call thisprogramdoesnotexist in the background once, sleep to let it finish, and then cat the files again.
thisprogramdoesnotexist &
sleep 1
cat f0.txt f1.txt f2.txt f3.txt f4.txt
I know that this is difficult to trace through, but if you take your time and logic it out, you can use the gradescripts to help you debug some of the difficult parts of your shell.