Help with script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help with script
# 1  
Old 01-28-2012
Help with script

Hey guys, kinda new to bash scripting at least using the vi, cant stand the 'syntax error at line... I guess im too used to compilers that tell you exactly what the error is. Anyways i was hoping someone would be able to tell me what is wrong with this script. i just keep getting error after error. Basically it gets a test score from the user then tells the user what his or her grade is. And to be clear this is not a homework assignment, following a tutorial on scripting. Thanks.
Code:
#!/bin/bash
#
#
##Author: John Burmeister
##Version: Who cares.
 
shopt -s -o nounset
 
declare -i userResponse
declare -i testScore
main()
{
userPrompt
calculateGrade
}
 
userPrompt()
{
echo -e "Would you like to enter a test score? "
read userResponse
if [$userResponse = "y" -o $userResponse = "Y"]
then
calculateGrade
elif
exit
fi
}
calculateGrade()
{
echo -e "\nPlease enter a test score: "
read testScore
if [$testScore -gt 0 -a $testScore -lt 49]
then
echo -e "\nYou recieved an: F "
elif [$testScore -gt 49 -a $testScore -lt 59]
then
echo -e "\nYou received an: D "
elif [$testScore -gt 59 -a $testScore -lt 69]
then
echo -e "\nYou reveived a: C "
elif [$testScore -gt 69 -a $testScore -lt 79]
then
echo -e "\nYou received a: B "
elif [$testScore -gt 80 -a $testScore -le 100]
then
echo -e "\nYou received an: A "
fi
userPrompt
}


Last edited by vbe; 01-29-2012 at 05:17 AM.. Reason: code tags please
# 2  
Old 01-28-2012
Code:
#! /bin/bash

# declare -i userResponse # If you typecast userResponse as an integer, then how will it hold "y" to imply yes!
# declare -i testScore # Don't typecast variables unless you really need to. Shell will take care of that by itself.
# What is main()??? This isn't C programming. main() would be treated as just another function.
# If you wish you can write a main() and call other functions from inside it, but remember to call "main()" from main!

calculateGrade()
{
echo -e "\nPlease enter a test score: "
read testScore
if [ $testScore -gt 0 -a $testScore -lt 49 ] # Put a space around square brackets.
then
    echo -e "\nYou recieved an: F "
elif [ $testScore -gt 49 -a $testScore -lt 59 ]
then
    echo -e "\nYou received an: D "
elif [ $testScore -gt 59 -a $testScore -lt 69 ]
then
    echo -e "\nYou reveived a: C "
elif [ $testScore -gt 69 -a $testScore -lt 79 ]
then
    echo -e "\nYou received a: B "
elif [ $testScore -gt 80 -a $testScore -le 100 ]
then
    echo -e "\nYou received an: A "
fi
userPrompt
}

userPrompt()
{
echo -e "Would you like to enter a test score? "
read userResponse
# Put a space around square brackets.
if [ $userResponse == "y" -o $userResponse == "Y" ] # A single = is an assignment operator not a relational operator. Use ==
then
    calculateGrade
else # Should be else here not elif
    exit
fi
}

# Call functions after you've defined them.
userPrompt
calculateGrade


Last edited by balajesuri; 01-28-2012 at 09:50 PM..
This User Gave Thanks to balajesuri For This Post:
# 3  
Old 01-29-2012
thanks for the help!
Login or Register to Ask a Question

Previous Thread | Next Thread

5 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to block first bash script until second bash script script launches web server/site?

I'm new to utilities like socat and netcat and I'm not clear if they will do what I need. I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes. I'm using Cygwin bash on Windows 10. My... (3 Replies)
Discussion started by: siegfried
3 Replies

2. Shell Programming and Scripting

Shell script works fine as a standalone script but not as part of a bigger script

Hello all, I am facing a weird issue while executing a code below - #!/bin/bash cd /wload/baot/home/baotasa0/sandboxes_finance/ext_ukba_bde/pset sh UKBA_publish.sh UKBA 28082015 3 if then echo "Param file conversion for all the areas are completed, please check in your home directory"... (2 Replies)
Discussion started by: ektubbe
2 Replies

3. UNIX for Dummies Questions & Answers

Calling a script from master script to get value from called script

I am trying to call a script(callingscript.sh) from a master script(masterscript.sh) to get string type value from calling script to master script. I have used scripts mentioned below. #masterscript.sh ./callingscript.sh echo $fileExist #callingscript.sh echo "The script is called"... (2 Replies)
Discussion started by: Raj Roy
2 Replies

4. Shell Programming and Scripting

Script will keep checking running status of another script and also restart called script at night

I am using blow script :-- #!/bin/bash FIND=$(ps -elf | grep "snmp_trap.sh" | grep -v grep) #check snmp_trap.sh is running or not if then # echo "process found" exit 0; else echo "process not found" exec /home/Ketan_r /snmp_trap.sh 2>&1 & disown -h ... (1 Reply)
Discussion started by: ketanraut
1 Replies

5. Shell Programming and Scripting

create a shell script that calls another script and and an awk script

Hi guys I have a shell script that executes sql statemets and sends the output to a file.the script takes in parameters executes sql and sends the result to an output file. #!/bin/sh echo " $2 $3 $4 $5 $6 $7 isql -w400 -U$2 -S$5 -P$3 << xxx use $4 go print"**Changes to the table... (0 Replies)
Discussion started by: magikminox
0 Replies
Login or Register to Ask a Question