interactive shell) and INTERRUPT is caught and ignored (so that wait is interruptable).
In all
cases QUIT is ignored by the shell.
Acknowledgements
The design of the shell is based in part on the original UNIX shell and the PWB/UNIX shell, some features
having been taken from both. Similarities also exist with the command interpreters of the Cambridge
Multiple Access System and of CTSS.
I would like to thank Dennis Ritchie and John Mashey for many discussions during the design of
the shell. I am also grateful to the members of the Computing Science Research Center and to
Joe Maranzano for their comments on drafts of this document.
Appendix A - Grammar
item:
word
input-output
name = value
simple-command:
item
simple-command item
command:
simple-command
( command-list )
{ command-list }
for name do command-list done
for name in word ... do command-list done
while command-list do command-list done
until command-list do command-list done
case word in case-part ... esac
if command-list then command-list else-part fi
pipeline:
command
pipeline | command
andor:
pipeline
andor && pipeline
andor || pipeline
command-list:
andor
command-list ;
command-list &
command-list ; andor
command-list & andor
input-output:
> file
< file
>> word
<< word
file:
word