DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   Shell Scripting (http://www.daniweb.com/forums/forum113.html)
-   -   Shell Scripting Problem (http://www.daniweb.com/forums/thread142827.html)

a.kris Aug 28th, 2008 1:17 pm
Shell Scripting Problem
 
Hey guys ..

I am pretty new to Shell Scripting. I was hoping if some one could help me out with my problem.

I am going with a tutorial for shell scripting. While executing some of the programs and commands I am getting errors. I have also checked other sites and tutorials for the same, but everything seems intact.
Following is the code. When I execute this (after changing the permission - 755), I get an error saying "unexpected end of file", Now I am not sure why this is happening ... please help me out.

Thanks in advance

Regards,
A Kris
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

help_uni()
{
echo "Usage: $0 -n -a -s -w -d"
echo "Option: These are optional argument"
echo " -n name of animal"
echo " -a age of animal"
echo " -s sex of animal"
echo " -w weight of animal"
echo " -d demo values (if any of the above options are used"
echo " their values are not taken)"
exit 1
}

if [ $# -it 10];then`
        help_ani
fi

while getopts n:a:s:W:d opt

do
        case "$opt" in
        n) na ="$OPTARG";;
        a) age ="$OPTARG";;
        s) sex ="OPTARG";;
        w) weight ="$OPTARG";;
        d) isdef = 1;;
        \?) help_ani;;
        esac
done
if[ $isdef -eq 0];then`
echo "Animal Name is  $na, age is $age, sex is $sex, weight is $weight (user defined mode)"
else''
na = "pluto dog"
age = 3
sex = male
weight = 20kg
echo "Animal name is $na, age is $age, sex is $sex, weight is $weight (demo mode)"
exit 1
fi''

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

sparty Aug 28th, 2008 7:54 pm
Re: Shell Scripting Problem
 
Im guessing it's because on your last line of the program you have an extra " after fi.

eggi Aug 28th, 2008 11:43 pm
Re: Shell Scripting Problem
 
There also seem to be a number of unnecessary backtick characters after a few then and else statements. That could be causing it.

Best wishes,

Mike

Aia Aug 28th, 2008 11:59 pm
Re: Shell Scripting Problem
 
How to define a variable.

eggi Aug 30th, 2008 12:27 am
Re: Shell Scripting Problem
 
Good point. Totally looked right past that. There are spaces to the left and right of all the assignment (=) operators... WOW :)

, Mike

Aia Aug 30th, 2008 11:40 pm
Re: Shell Scripting Problem
 
Quote:

Originally Posted by eggi (Post 681055)
Good point. Totally looked right past that. There are spaces to the left and right of all the assignment (=) operators... WOW :)
, Mike

If it only were that ...

if [ $# -it 10];then`
#                  ^Wrong ` there
#            ^Need extra space there
#          ^Probably 1 (one) and not 10
#        ^-lt, not -it. Stands for `is less than'   
# corrected would be:
# if [ $# -lt 1 ]; then
# meaning: if not arguments where entered show menu
Spaces in the if statement between if and [ ] are important. They need to be respected.
With that in mind I leave
if[ $isdef -eq 0];then`
for you to figure what's wrong with it.
echo "Animal name is $na, age is $age, sex is $sex, weight is $weight (demo mode)"
exit 1 # Not need it
fi'' # Not need it
Before using the demo mode, those variables need to have something assigned to them since the user hasn't assigned anything.

eggi Aug 31st, 2008 2:19 am
Re: Shell Scripting Problem
 
Guess I got mislead by the error message.. :) I'm surprised a script with so many errors didn't generate a much different one other than unexpected EOF ;)
,Mike


All times are GMT -4. The time now is 5:17 pm.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC