For the following steps, write shell programs that use command line arguments as
ID: 666927 • Letter: F
Question
For the following steps, write shell programs that use command line arguments as input to the shell program. Do not prompt the user for input from the keyboard!
Note: Most of these shell programs need to be only 1 or 2 lines long.
Write a shell program called list to display all the usernames and full names in the users.reffile. The information should be displayed in alphabetical order by student's last name (not by username). Save the list shell program in your lab7 directory.
Write a shell program called find to locate an existing record in users.ref and display the student's username and full name on the screen. The search should not be case sensitive. This shell program should allow the user to specify either a student's username or their full name. Save the find shell program in the lab7 directory.
Did you encounter any problems in the previous step? If so, what were they and how did you resolve them? Include a note describing the problems and solutions in a file called lab7.notes.
Write a shell program called remove which deletes a student's entry from your users.ref file. Similar to find, the user should be able to specify the student to be removed by their username or their full name. Save the remove shell program in lab7. (hint: grep has an option "-v". Go check it out!)
Write a shell program called add to add a new username and full student's name to yourusers.ref file. Your program should be used in the following manner (hint: echo hello >> file):
Part III:
Verify correct operation of your shell programs. Use the script command to record your test results. Type script at the command line. This will start a new shell that "captures" all input and output and records it in a file named typescript in your current directory.
Execute the pwd command.
Execute the ls command.
Execute your list command.
Execute your find command (or whatever you named it) twice. (Once to locate a student by their username and a second time to locate them by their full name.)
Use your remove shell program twice: once to remove a student using their username, another removing them by their full name.
Use your add shell program to add an entry to the file
Execute your list command a second time.
Type exit (or ctrl-d) to exit the script shell. The input and output were written to a file calledtypescript. Change the name of this file to script1 and save it in the lab7 directory.
Part IV:
Use the "tar" (tape archive) command to wrap all the files into a single file, and then send only that file to lliang via mailx . The files to wrap with the tape archive are your final versions of:
list
find
remove
add
lab7.notes
script1
Copy all of the final versions of your shell programs into your lab7 directory. Then use the followingtar command to create your archive:
Be sure to include the latest version of each of your files! Move lab7.tar to a temp directory. Try the following command to confirm you have included everything
tar -xvf lab7.tar lab7
Use mailx to e-mail the archive file lab7.tar to your instructor at lliang to complete the Lab 7 assignment. Make the subject of your message %u201CLast Name, First Name lab7 submission%u201D when mailing your lab to the instructor
Explanation / Answer
shell script
$ find "lily.brown"
grep -h -i $1 < users.ref
this command grep will search for the pattern (that has been passed as command line argument to the script in $1) in the text file users.ref
the -h switch will display only the line of text and not other details. the -i will make the search case insensitive.
the word being searched can be the username or the full name , which ever is being passed that will be searched and located
remove -
the sed command is used to remove text from the txt file
sed $1 'users.ref'
the value contained in the first command line argument is removed from the file users.ref
To add a new user name which is passed as command line argument - two arguments holding the userrname and the full students name is passed
program add $1 $2
echo "$1" >> 'users.ref'
echo "$2" >> 'users.ref'
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.