#!/bin/bash

TEMP=`getopt -o i:P:: --long ip:,port:: \
     -n 'example.bash' -- "$@"`

if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi

# Note the quotes around `$TEMP': they are essential!
eval set -- "$TEMP"

while true ; do
        case "$1" in
                -i|--ip) echo "Option a" ; shift ;;
                -P|--port) echo "Option b, argument \`$2'" ; shift 2 ;;
                *) echo "Internal error!" ; exit 1 ;;
        esac
done
echo "Remaining arguments:"
for arg do echo '--> '"\`$arg'" ; done
