im trying to teach my self bash shell scripting. i want to include command line arguments in my script i am writing for practice. when i run my script it dosnt make a difference what arguments there are, it just out puts the error message as if there were none. here is the check_opts () function in my script, can someone tell me whats wrong here ?
check_ops () # lets see what happens ...
{
NO_ARGS=0
E_OPTERROR=65
if [ $# -eq "$NO_ARGS" ] # should check for no arguments
then
echo "Usage: `basename $0` <OPTIONS> -s <HOSTNAME> "
echo "Try './serverstatus -h' for more information."
exit $E_OPTERROR
fi
while getopts ":invhs:" Option
do
case $Option in
i )
interactivemode_func
;;
n )
non_interactivemode_func
;;
v )
version_func
;;
h )
help_func
;;
s )
echo "will take hostname" # dunno how to do this hold on
;;
* )
echo "Unimplemented option chosen"
;;
esac
done
shift $(($OPTIND - 1))
}
this is called by a main () function that is ran before anything. thanks !
edit: for option -s i will be setting the hostname that will be portscanned. usage would look like this:
./serverstatus -s hostname
if that is the only option i will want it to default to non interactive mode. i can post more of my script if someone needs to see what i am doing. it is all very simple, i run nmap <hostname> and set the output to $a
right now that is the first thing that is done with my server address right in the script. then all i do is grep $a for corresponding ports and echo if that service is running or not.