0

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'' 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4
Contributors
6
Replies
7
Views
8 Years
Discussion Span
Last Post by eggi
0

Im guessing it's because on your last line of the program you have an extra " after fi.

0

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

0

Good point. Totally looked right past that. There are spaces to the left and right of all the assignment (=) operators... WOW :)

, Mike

0

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.

1

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

Comments
;)
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.