Wondering if i can get some help writing a shell in c that supports the following internal commands: cd- change the current default directory to. If theargument is not present, report the current directory. If the directory does not exist an appropriate error should be reported. This command should also change the PWD environment variable. clr - clear the screen. dir- list the contents of directory environ - list all the environment strings echo - display on the display followed by a new line (multiple spaces/tabs may be reduced to a single space) help - display the user manual using the more filter pause - pause operation of the shell until 'Enter' is pressed quit - quit the shell The shell environment should contain shell=/myshell where/myshell is the full path for the shell executable (not a hardwired path back to your directory, but the one from which it was executed) All other command line input is interpreted as program invocation which should be done by the shell forking and execing the programs as its own child processes. The programs should be executed with an environment that contains the entry: parent=/myshell where/myshell is as described in the last bullet point. above

LINUX+ AND LPIC-1 GDE.TO LINUX CERTIF.
5th Edition
ISBN:9781337569798
Author:ECKERT
Publisher:ECKERT
Chapter7: Working With The Bash Shell
Section: Chapter Questions
Problem 6DE
icon
Related questions
Question

Wondering if i can get some help writing a shell in c that supports the following internal commands:

  • cd- change the current default directory to. If theargument is not present, report the current directory. If the directory does not exist an appropriate error should be reported. This command should also change the PWD environment variable.
  • clr - clear the screen.
  • dir- list the contents of directory
  • environ - list all the environment strings
  • echo - display on the display followed by a new line (multiple spaces/tabs may be reduced to a single space)
  • help - display the user manual using the more filter
  • pause - pause operation of the shell until 'Enter' is pressed
  • quit - quit the shell
  • The shell environment should contain shell=/myshell where/myshell is the full path for the shell executable (not a hardwired path back to your directory, but the one from which it was executed)

All other command line input is interpreted as program invocation which should be done by the shell forking and execing the programs as its own child processes. The programs should be executed with an environment that contains the entry: parent=/myshell where/myshell is as described in the last bullet point. above.

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Linux
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
LINUX+ AND LPIC-1 GDE.TO LINUX CERTIF.
LINUX+ AND LPIC-1 GDE.TO LINUX CERTIF.
Computer Science
ISBN:
9781337569798
Author:
ECKERT
Publisher:
CENGAGE L