Telephone book script

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!

  1. The problem statement, all variables and given/known data:

Hi, here is my other assignment for the week.

Create a shell script for a telephone book application. Display a menu for the following functions.

  1. Add an entry----done
  2. Display all matches to a string----done
  3. Sort and display the file
  4. Delete all entries that match a string----done
  5. exit the program

Using the phone list below:

� Add a new name to the phone book file
� Display all matches to a name or phone number
� Sort the phone book file by last name
� Delete an entry

Print the results from each sequence of commands

  Data File  \(tabs between fields\)
          Gene	Smith	       732 946-4691
          Henry	Brown	908 922-5820
          Harry	Crown	609 566-4515		
          Jim	        Zark	        732 842-1910
              Tom 	Mann	        908 264-5321
              Jack 	Spratt	908 264-4816		    
              Joe 	        Bram          609 521-4841
  1. Relevant commands, code, scripts, algorithms:

shell programming

  1. The attempts at a solution (include all code and scripts):
#!/bin/sh
    # Name of phonebook
    BOOK="phonebook.txt"

    exit=0

    while [ $exit -ne 1 ]
    do
        echo "operation you want?"
        echo -e "add, list, find, delete, exit: "
        read answer

        if [ "$answer" = "add" ]
        then
            ./add.sh
        elif [ "$answer" = "list" ]
        then
            ./list.sh
        elif [ "$answer" = "find" ]
        then
            ./find.sh
        elif [ "$answer" = "delete" ]
        then
            ./delete.sh
        elif [ "$answer" = "exit" ]
        then
            exit=1
        else
            echo "command not available."
        fi
    done

    exit 0
  1. Complete Name of School (University), City (State), Country, Name of Professor, and Course Number (Link to Course):

Brookdale Community College - Lincroft, New Jersey - United States - Dr. Rick Bournique- COMP 145

Note: Without school/professor/course information, you will be banned if you post here! You must complete the entire template (not just parts of it).

Have you heard of case statement?
Do a bit of googling and look around in our forums...

I understand that the case statement will be cleaner, but is this not valid? (e.g. does it accomplish what my teacher wants)?

I tried your master script. It seems to work fine, seems to accomplish what your teacher wants. I did notice (minor nit-picky) that the "echo -e" prints the -e instead of using it as a command option. I won't explain why it does that, according to the forum rules.

I have been trying to replicate this with a case statement because I am not sure which way he wants this. He has an example of creating a menu in our powerpoint slides, so he might want us to do it that way, but I cannot figure out how to add the commands properly. Would it be something like:

# Use of a case statement to offer a 5 item menu
echo �  Menu\n1. Add an entry \n2. Display all matches to a string\n3. Sort and display the file\n4. Delete all entries that match a string\n5. Quit to Unix\nEnter your option #: \c�
read choice
case �$choice� in
	1) add;;
	2) list;;
	3) find;;
	4) delete;;
	5) exit ;;
	*)	echo �Invalid option�   # ;; not needed for last option
esac

I am not sure how to add the commands properly like I did with the original solution, where I included the sub scripts like ./add.sh. Any ideas?

As you said, I think the teacher just wants something that works. You could ask the teacher if case is preferable, or is OK to use if / else.

Cool he said if / else is fine.

Then I would just go with the if / else and move on to the next part of the problem. if / else is more common. vbe is correct that case would be a cleaner choice here, whenever you get around to studying that later.