A Command-Line Interpreter, or Shell Your shell should read the line from standard input (i.e., interactive mode) or a file (i.e., batch mode), parse the line with command and arguments, execute the command with arguments, and then prompt for more input (i.e., the shell prompt) when it has finished.  2. Batch Mode In batch mode, your shell is started by specifying a batch file on its command line. The batch file contains the list of commands that should be executed. In batch mode, you should not display a prompt, but you should echo each line you read from the batch file back to the user before executing it. You will need to use the fork()and not exec()family of system calls. You may not use the system() system call as it simply invokes the system’s /bin/bash shell to do all of the work. You may assume that arguments are separated by whitespace. You do not have to deal with special characters such as ', ", \, etc. However, you will need to handle the redirection operators (< and >) and the pipeline operator (|), which will be specified in the “individual” portion of this assignment. Each line (either in the batch file or typed at the prompt) may contain multiple commands separate with the semicolon (;) character. Each command separated by a ; should be run sequentially (i.e. when you use semicolons, each command/program will run regardless if the preceding one fails), but the shell should not print the next prompt or take more input until all of these commands have finished executing (the wait() or waitpid() system calls may be useful here). You may assume that the command-line a user types is not longer than 512 bytes (including the '\n'), but you should not assume that there is any restriction on the number of arguments to a given command.

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

A Command-Line Interpreter, or Shell
Your shell should read the line from standard input (i.e., interactive mode) or a file
(i.e., batch mode), parse the line with command and arguments, execute the
command with arguments, and then prompt for more input (i.e., the shell prompt)
when it has finished. 

2. Batch Mode
In batch mode, your shell is started by specifying a batch file on its command
line. The batch file contains the list of commands that should be executed. In
batch mode, you should not display a prompt, but you should echo each line
you read from the batch file back to the user before executing it.
You will need to use the fork()and not exec()family of system calls. You may
not use the system() system call as it simply invokes the system’s /bin/bash
shell to do all of the work.
You may assume that arguments are separated by whitespace. You do not have
to deal with special characters such as ', ", \, etc. However, you will need to
handle the redirection operators (< and >) and the pipeline operator (|), which will
be specified in the “individual” portion of this assignment.
Each line (either in the batch file or typed at the prompt) may contain multiple
commands separate with the semicolon (;) character. Each command separated
by a ; should be run sequentially (i.e. when you use semicolons, each
command/program will run regardless if the preceding one fails), but the shell
should not print the next prompt or take more input until all of these commands
have finished executing (the wait() or waitpid() system calls may be useful
here).
You may assume that the command-line a user types is not longer than 512 bytes
(including the '\n'), but you should not assume that there is any restriction on
the number of arguments to a given command.
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY