Problem with executing a possible if or case statement 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:
Create a phonebook program.
It should use functions to perform the required tasks. It should be menu-based, allowing you the options of:
* Search address book
* Add entries
You will also need a Display function to present the result.
Suggestions:
The phonebook is basically an ASCII file with Phone Number, Name, Email Address and zipcode.
Try to use ":" as field seperator [IMG]file:///C:/DOCUME%7E1/ROBERT%7E1/LOCALS%7E1/Temp/msohtmlclip1/01/clip_image002.gif[/IMG]
2. Relevant commands, code, scripts, algorithms:
I would think to use either case and if statements together, trying to nest them, or possibly using a loop of some kind, but I haven't gotten the whole loop thing down.
I know that i havent incorporated the phone list into it yet, but i just want my scripting to work. Not sure if I'm reading the problem correctly either.
3. The attempts at a solution (include all code and scripts):
GNU nano 1.2.4 Filehonebook
Here is the phonebook directory
GNU nano 1.2.4 File: phonelist
The names and likenesses are all made up, but for the sake of the assignment they are there.
4. Complete Name of School (University), City (State), Country, Name of Professor, and Course Number (Link to Course):
Baker College, Jackson, MI, USA, S.Sadiq LUX 211
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).
1) The ecase statement is in the wrong place. Move it up.
2) You don't need to (shouldn't) put more phonelist in an echo statement. The results of this are certainly unpredictable at best. The output from the more command is captured by the shell and used as the parameter for the echo command. From this perspective, the user might be given a prompt (--more--) before they see any output, or they may never be prompted and the text written by the echo command would scroll by unchecked; either of these cases would be confusing. Further, if your phone book is large, the amount of text placed on the echo command might exceed system limits and cause an error. Simply coding the command and its parameters as a statement in the script is all you need here.
In general, I don't think that it is good form to ever execute a command that naturally expects user input using back ticks or when using the preferred $(command) syntax. These imply that the output from the command is to be saved or passed to another command/function and that human intervention might not be appropriate.
3) You are not reading choice from the user, yet you test for it.
I'd also recommend using double bracketed expressions ([[ expression ]]) as they are much more efficient. All of the modern Bourne derived shells support this syntax. When using this notation, you do need to use == to test for equality.
If you are using Kshell, then you can have the shell test for syntax errors which might help with your debugging. If your script is in the file pb.ksh then this command can be used to test for syntax issues:
When I ran your original script through Kshell this way the output was this:
Which immediately pointed out that the esac was misplaced.
Im not a bash user per se, but I believe that bash has a similar option/feature to syntax check if you prefer to use bash.
Hi,
Here is my code as below:
test.ksh:
=======
#!/bin/ksh
option="${1}"
while
do
case $1 in
-f) FILE="${2}"
echo "File name is $FILE"
;;
-d) DIR="${2}"
echo "Dir name is $DIR"
;;
-*)
echo "`basename ${0}`:usage: | " (5 Replies)
I'm currently trying to write a login script. I have already written a logoff script that uses an if/else statement.
#!/bin/bash
TIMED=$(date +%H)
if ' then
echo Have a Great Day $USER
else
echo Have a Great Night $USER
fi
But I'd like to write one that give me the option of... (1 Reply)
I have the following bash script and it is not accepting the lines
"--"|"--""-")
"--""-"")
while
do
echo "Current Argument is ${1}"
case "$1" in
"--"|"--""-")
echo "Argument is ${1}"
shift # Skip ahead one to the next argument.
... (1 Reply)
I am writing a bash script that asks the user for input and I need it to repeat until the user selects quit.. I dont know how to write the loop for it I searched all over but i still do not get it.. if anyone could help with this it would be greatly apprciated here is my script so far:
#!... (2 Replies)
Hi,
When I execute the below script, I am getting the error as
' is not expected.ror at line 3 : `in
#!/bin/sh
case $1 in
-r) echo Force deletion without confirmation ;;
-i) echo Confirm before deleting ;;
*) echo Unknown argument ;;
esac
I could not see any problem with... (1 Reply)
Guys,
Here is the script syntax which is not accepting the parameters & not performing the said activity.
$ ./routing.sh xyz123-ra str enable
**********************************************************************
Preparing to service the request for Device xyz123-ra in Question... (9 Replies)
Hi,
I need modify the all lines in a file into one format.
cat file
htec.twe34c.ATI
.hesh.twdghu..ATI
..hesh.twdghu..ATI
htec.twe3
hjsct14567ati
Output should have 16 characters
htectwe34c ATI
heshtwdghu ATI
heshtwdghu ATI
htectwe3 ATI
hjsct14567 ATI (4 Replies)
In a case statement like below :
case $rental in
"car") echo "For $rental Rs.20 per k/m";;
"van") echo "For $rental Rs.10 per k/m";;
"jeep") echo "For $rental Rs.5 per k/m";;
"bicycle") echo "For $rental 20 paisa per k/m";;
*) echo "Sorry, I can not gat a $rental for you";;... (4 Replies)
Hi All,
this small script is written to recognize user input character.. it is in small case .. upeer case or is a number... but when i input first capital letter say A.. it always gives small character.... what is the problem.
#!/bin/bash
echo "Enter the character"
read a
case $a in
)... (2 Replies)
I need to display this menu and accept variables. Can someone tell me why i am having a problem with this case statement, please
# TAPE MANAGER MAIN MENU
tapemgr_Main_Menu()
{
echo "Legato Tape Management System Menu"
echo " This system is used to report Legato ERV Offsite and Tapes... (6 Replies)