Interactive Shell:
Write a C/C++ program to implement an interactive shell in which users can execute commands. Call this program myShell. Create an infinite loop (while(1)) that repeatedly prompts the user to enter a command (see example output and input below). Before executing the command entered by the user, the command must be compared against the list of supported commands shown here:
dir
help
vol
path
tasklist
notepad
echo
color
ping
Since some commands require more than one argument (e.g. echo, color, ping), you will need to parse the user input into its arguments. Consider using the strtok() function.
For example:
COMMAND TYPED BY THE USER:
ping [login to view URL]
ARGUMENT 0: "ping"
ARGUMENT 1: "[login to view URL]"
If the command in argument[0] is in the list above, your program must execute the command in a child thread via CreateThread(). In other words, create a child thread that executes the command. You do not need to actually write code to execute each command. Simply pass the command into the system call, system() and let the operating system handle the processing for you. The parent thread waits for the child to terminate. If the user types exit or quit, your shell should simply terminate. Sample output and input are shown below:
Welcome to myShell
==> dir
Volume in drive C is Windows
Volume Serial Number is 301D-8616
Directory of c:\Projects\ConsoleApplication1\ConsoleApplication1
08/27/2016 08:59 AM <DIR> .
08/27/2016 08:59 AM <DIR> ..
08/27/2016 08:59 AM 1,686 [login to view URL]
08/25/2016 05:42 PM 8,060 [login to view URL]
08/25/2016 05:42 PM 1,346 [login to view URL]
08/27/2016 09:00 AM <DIR> Debug
08/25/2016 05:42 PM 1,799 [login to view URL]
08/25/2016 05:42 PM 306 [login to view URL]
08/25/2016 05:42 PM 320 stdafx.h
08/25/2016 05:42 PM 314 targetver.h
7 File(s) 13,831 bytes
3 Dir(s) 526,080,049,152 bytes free
==> ping [login to view URL]
Pinging [login to view URL] with 32 bytes of data:
Reply from [login to view URL]: bytes=32 time=2ms TTL=64
Reply from [login to view URL]: bytes=32 time=1ms TTL=64
Reply from [login to view URL]: bytes=32 time=3ms TTL=64
Reply from [login to view URL]: bytes=32 time=4ms TTL=64
Ping statistics for [login to view URL]:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1ms, Maximum = 4ms, Average = 2ms
==> exit
Thanks for using myShell!
Assumptions: Assume arguments within myShell do not contain spaces. In other words, don't worry about parsing out quoted strings in your argument list ([login to view URL] [login to view URL] "some [login to view URL]"). You may assume that no more than four arguments will be used on the command line (i.e. similar to argv[0], argv[1], argv[2], and argv[3]).
Hi
I already have developed an interactive shell command line interpreter using the specifications that you set
Send me a message to discuss the details
HI...i am proficient in C/C++ programming with data structures, algorithms and can help you implement the interactive shell as per given specs using good design code and comments.
Hello recruiter,
I just read your job description properly and understand what you want.
If you want i can start your work right now.
I am highly interested to work for you. I have finished many projects like this.
I am expert in Software Engineer. I have knowledge about multiple Programming languages like C,C++,JAVA and Python. I have 5 years of experience on this. I am also competitive coder in many sites like hackerearth , spoj, codeforces and codechef. please send me message for more details on this. I will surely do your work with well indentation. I will help you till you totally satisfied.
Waiting for your responce.
Have a nice day!