The shell acts as our agent in dealing with the kernel. It is there to do our bidding, and to make life as easy as possible for us. Take for example, the $PATH variable. If the shell didn't use the $PATH variable, we would have to remember the absolute pathname to every executable we would hope to use. It's hard enough remembering the programs we want to use, especially if we use different flavours of UNIX and things are in different places.