Difference between revisions of "Directory:Derek Elder/Programs/PhonebookSystem"

MyWikiBiz, Author Your Legacy — Thursday May 02, 2024
Jump to navigationJump to search
(Start of linux shell program upload)
 
(Complete transfer)
 
Line 13: Line 13:
 
do
 
do
 
   case $choice in
 
   case $choice in
   //To do
+
   1)
 +
    addanother=1
 +
    while [ $addanother != 0 ]
 +
    do
 +
      echo "Enter the name to add: "
 +
      read name
 +
      echo "Enter the phone number to add: "
 +
      read number
 +
      echo "The added entry will be $name:$number"
 +
      echo "Is this the entry you wish to add? Enter [Y]es or [N]o"
 +
      read entry
 +
      if [ $entry == "Y" -o $entry == "y" ]
 +
      then
 +
        echo "$name:$number" >> $book
 +
        echo "Add has been performed"
 +
      else
 +
        echo "Add has not been performed"
 +
      fi
 +
      echo "Enter 1 if you would like to add another entry, enter 0 to exit."
 +
      read addanother
 +
    done;;
 +
  2)
 +
    deleteanother=1
 +
    count=0
 +
    while [ $deleteanother != 0 ]
 +
    do
 +
      echo "Enter the name to be deleted: "
 +
      read name
 +
      grep -n $name $book > countbook
 +
      count=`cat countbook | wc -l`
 +
      if [ $count -eq 0 ]
 +
      then
 +
        echo "Error, no matches were found."
 +
      else
 +
        grep -n $name $book
 +
        echo "Which line number would you like to delete?"
 +
        read linum
 +
        sed "$linum d" $book > temp
 +
        temp > $book
 +
      fi
 +
      echo "Enter 1 if you would like to delete another entry, enter 0 to exit."
 +
      read deleteanother
 +
    done;;
 +
  3)
 +
    echo "List choices"
 +
    echo "    1. List Entry"
 +
    echo "    2. List File"
 +
    read menuchoice
 +
    if [ $menuchoice -eq 1 ]
 +
    then
 +
      echo "Enter the name to list: "
 +
      read name
 +
      grep -n $name $book
 +
    else
 +
      echo "Press <enter> to go forward through the file line by line."
 +
      echo "Press <b> to go backward through the file one screen at a time."
 +
      echo "Press <f> to go forward through the file one screen at a time."
 +
      echo "Press <q> when you want to leave the file entry."
 +
      echo "Press <enter> when you want to continue."
 +
      read dummy
 +
      cat $book | less
 +
    fi;;
 +
  4)
 +
    changes=y
 +
    count=0
 +
    while [ $changes == "Y" -o $changes == "y" ]
 +
    do
 +
      echo "Please enter the name you would like to change: "
 +
      read name
 +
      grep -n $name $book
 +
      grep -n $name $book > tempfile
 +
      count=`cat tempfile | wc -l`
 +
      if [ $count -gt 0 ]
 +
      then
 +
        echo "Please enter the line number you would like to change: "
 +
        read linum
 +
        sed -n "$linum p" $book > linumtemp
 +
        echo "Which would you like to change: "
 +
        echo "    1. Name"
 +
        echo "    2. Number"
 +
        read menuchoice
 +
        if [ $menuchoice -eq 1 ]
 +
        then
 +
          oldnumber=`cat linumtemp | cut -d: -f2`
 +
          echo "Please enter the new name: "
 +
          read newname
 +
          sed "$linum d" $book >> tempbook
 +
          mv tempbook $book
 +
          echo "$newname:$oldnumber" >> $book
 +
        else
 +
          oldname=`cat linumtemp | cut -d: -f1`
 +
          echo "Please enter the new number: "
 +
          read newnumber
 +
          sed "$linum d" $book >> tempbook
 +
          mv tempbook $book
 +
          echo "$oldname:$newnumber" >> $book
 +
        fi
 +
      else
 +
        echo "Error, no match found in the phone book."
 +
      fi
 +
      echo "More changes? [Y]es or [N]o"
 +
      read changes
 +
    done;;
 +
  *)
 +
    echo "Error, please enter a valid choice";;
 
   esac
 
   esac
 
   echo "1) Add an entry"
 
   echo "1) Add an entry"

Latest revision as of 07:13, 7 February 2010

echo "Please enter the name of your phonebook: "
read book
echo "Phone book system"
echo "1) Add an entry"
echo "2) Delete an entry"
echo "3) List file or entry"
echo "4) Change an entry"
echo "5) Exit system"
echo "Please enter your menu choice: "
read choice
while[ $choice != 5 ]
do
  case $choice in
  1)
    addanother=1
    while [ $addanother != 0 ]
    do
      echo "Enter the name to add: "
      read name
      echo "Enter the phone number to add: "
      read number
      echo "The added entry will be $name:$number"
      echo "Is this the entry you wish to add? Enter [Y]es or [N]o"
      read entry
      if [ $entry == "Y" -o $entry == "y" ]
      then
        echo "$name:$number" >> $book
        echo "Add has been performed"
      else
        echo "Add has not been performed"
      fi
      echo "Enter 1 if you would like to add another entry, enter 0 to exit."
      read addanother
    done;;
  2)
    deleteanother=1
    count=0
    while [ $deleteanother != 0 ]
    do
      echo "Enter the name to be deleted: "
      read name
      grep -n $name $book > countbook
      count=`cat countbook | wc -l`
      if [ $count -eq 0 ]
      then
        echo "Error, no matches were found."
      else
        grep -n $name $book
        echo "Which line number would you like to delete?"
        read linum
        sed "$linum d" $book > temp
        temp > $book
      fi
      echo "Enter 1 if you would like to delete another entry, enter 0 to exit."
      read deleteanother
    done;;
  3)
    echo "List choices"
    echo "    1. List Entry"
    echo "    2. List File"
    read menuchoice
    if [ $menuchoice -eq 1 ]
    then
      echo "Enter the name to list: "
      read name
      grep -n $name $book
    else
      echo "Press <enter> to go forward through the file line by line."
      echo "Press <b> to go backward through the file one screen at a time."
      echo "Press <f> to go forward through the file one screen at a time."
      echo "Press <q> when you want to leave the file entry."
      echo "Press <enter> when you want to continue."
      read dummy
      cat $book | less
    fi;;
  4)
    changes=y
    count=0
    while [ $changes == "Y" -o $changes == "y" ]
    do
      echo "Please enter the name you would like to change: "
      read name
      grep -n $name $book
      grep -n $name $book > tempfile
      count=`cat tempfile | wc -l`
      if [ $count -gt 0 ]
      then
        echo "Please enter the line number you would like to change: "
        read linum
        sed -n "$linum p" $book > linumtemp
        echo "Which would you like to change: "
        echo "    1. Name"
        echo "    2. Number"
        read menuchoice
        if [ $menuchoice -eq 1 ]
        then
          oldnumber=`cat linumtemp | cut -d: -f2`
          echo "Please enter the new name: "
          read newname
          sed "$linum d" $book >> tempbook
          mv tempbook $book
          echo "$newname:$oldnumber" >> $book
        else
          oldname=`cat linumtemp | cut -d: -f1`
          echo "Please enter the new number: "
          read newnumber
          sed "$linum d" $book >> tempbook
          mv tempbook $book
          echo "$oldname:$newnumber" >> $book
        fi
      else
        echo "Error, no match found in the phone book."
      fi
      echo "More changes? [Y]es or [N]o"
      read changes
    done;;
  *)
    echo "Error, please enter a valid choice";;
  esac
  echo "1) Add an entry"
  echo "2) Delete an entry"
  echo "3) List file or entry"
  echo "4) Change an entry"
  echo "5) Exit system"
  echo "Please enter your menu choice: "
  read choice
done