Creating new shell in C

I am a student and I want to create a shell in C language.
The shell must be able to take commands(with arguments) from the user and execute them and show the results. Any help or ideas or any suggestions would be greatly appreciated.

Here's what I expect a shell to do:

Display a prompt
Accept input
Parse input (wild-card/alias expansion, etc)
Pass input to "exec"


I know what the shell must do butI want to know how to do it?

Nobody is going to write an entire shell for you here in the forums. If you want to see examples of how a shell works, download the source code to one of the many free versions, such as <A HREF="">ksh93</A>, tcsh, etc.

I thought PxT gave a very good reply on the high level requirements for a shell. Combined with a followup suggestion to review existing source code for shells is an excellent reply.

If anyone wants to followup with high-level requirements for a shell, or perhaps what a shell should do that current shells do not (based on network-centric models, perhaps?) that would be great!