Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Write a shell script to create, edit and view a simple database that contains automobile records. The shell script has to be done in Bourne

Write a shell script to create, edit and view a simple database that contains automobile records. The shell script has to be done in Bourne shell syntax (i.e., bash). You may use any bash feature or Linux command available.

The first parameter for your script is always the database being queried. The second parameter is always the command that will be executed. Any parameters that follow are specific to the command that was issued.

The general syntax of script invocation is:

autodb dbname command param1 ... paramN

Where:

Autodb is the name of the shell script file

dbname is the name of the file that contains the database records

command is one of: create, add, view or delete

param1...paramNare parameters to the specified command

Description of commands and parameters

create title text creates a new database with name dbname. Any text following the create command will become the first line in the database file. If no text is given, the default is "Automobile Database". An error occurs if the database already exists.Upon success, the create command reports "New database created".

add make model year color adds a new record to the database. Up to 4 parameters can be listed in this order: make, model, year, color. If only 3 parameters are given then the script will prompt for the fourth; if only 2 are given it will prompt for parameter 3 and 4; if only one parameter is given it will prompt for parameters 2 to 4; if no parameters are given then it prompts for all 4. The year must be a 4 digit number greater than 1870 and smaller than 2020. The other parameters are strings. Upon success, the add command reports "Successfully added a record to the database".

view all

view single number

view range number1 number2

allows the user to view all records, just a single record or a range of records in the database. To view a single record the record number is specified after the keyword "single". To view a range of records the 2 numbers after the keyword "range" indicate the start and the end of the range, they are inclusive. The second number must be larger than the first. The output of the view command lists records in the database. The first line of output always is the title text from the database. Then follow the lines for the requested entries in the database, either all, a single line, or a range.

An example "view all" output looks like this:

Automobile Database

Ford, Mustang, 2008, blue with white stripes

Mitsubishi, Lancer, 2009, white

Toyota, Camry LE, 2004, black

Porsche, Cayenne S, 2007, red

An example "view range 2 3" output looks like this:

Automobile Database

Mitsubishi, Lancer, 2009, white

Toyota, Camry LE, 2004, black

Also needs to:

delete all

delete single number

delete range number1 number2

allows the user to delete records: either all, just a single record or a range of records. To delete a single record the record number is specified after the keyword "single". To delete a range of records the 2 numbers after the keyword "range" indicate the start and the end of the range, they are inclusive. The second number must be larger than the first. The delete command reports the number of lines deleted, such as "Successfully 3 deleted 4 records from the database". Note that the title line in the database is never deleted.

Error Checking

If an error occurs, print an error message and exit the script. Specifically your script should:

ensure that the command is spelled correctly

ensure that all required parameters to the appropriate command are present

ensure that line numbers fall within the lines present in the database file

ensure that the database file exists and is readable, and in the case of "add", "delete" and "edit" also writable

if the file is empty (i.e., no records), your script should print out a message that no records are found

Database file format

The first line in the database file contains the title text specified in the "create" command. The remaining lines specify automobile entries with fields that are separated by ", ".

For example, the database file for the above "view all" command would contain:

Automobile Database

Ford, Mustang, 2008, blue with white stripes

Mitsubishi, Lancer, 2009, white

Toyota, Camry LE, 2004, black

Porsche, Cayenne S, 2007, red

Example Run

$ ./autodb DB create Example for Assignment

New database created

$ ./autodb DB add Ford Mustang 2008 "blue with white stripes"

Successfully added a record to the database

$ ./autodb DB add

Mitsubishi Lancer 2009 white

Successfully added a record to the database

$ ./autodb DB add Toyota "Camry LE" 2004 black

Successfully added a record to the database

$ ./autodb DB add Porsche "Cayenne S" 2007 red

Successfully added a record to the database

$ ./autodb DB view all

Example for Assignment

Ford, Mustang, 2008, blue with white stripes

Mitsubishi, Lan

cer, 2009, white

4

Toyota, Camry LE, 2004, black

Porsche, Cayenne S, 2007, red

$ ./autodb DB delete single 2

1 record deleted

$ ./autodb DB view all

Example for Assignment

Ford, Mustang, 2008, blue

with white stripes

Toyota, Camry LE, 2004, black

Porsche, Cayenne S, 2007, red

$ cat DB

Example for Assignment

Ford, Mustang, 2008, blue with white stripes

Toyota, Camry LE, 2004, black

Porsche, Cayenne S, 2007, red

Additional Requirements

4

Toyota, Camry LE, 2004, black

Porsche, Cayenne S, 2007, red

$ ./autodb DB delete single 2

1 record deleted

$ ./autodb DB view all

Example for Assignment

Ford, Mustang, 2008, blue

with white stripes

Toyota, Camry LE, 2004, black

Porsche, Cayenne S, 2007, red

$ cat DB

Example for Assignment

Ford, Mustang, 2008, blue with white stripes

Toyota, Camry LE, 2004, black

Porsche, Cayenne S, 2007, red

Additional Requirements

Be sure to test your script thoroughly.

Your file must mention /bin/bash in its shebang line.

Make sure your script does not leave any temporary files behind.

Make sure that your autodb file is a regular Linux text file.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

More Books

Students also viewed these Databases questions