#!/bin/sh GETOPT=$(getopt -o ab:c:: -l a-long,b-long:,c-long:: -n 'example.busybox' -- "$@") [ $? == 0 ] || exit 1 eval set -- "$GETOPT" while true ; do case $1 in -a|--a-long) echo "Option a" ; shift ;; -b|--b-long) echo "Option b, argument `$2'" ; shift 2 ;; -c|--c-long) case "$2" in "") echo "Option c, no argument"; shift 2 ;; *) echo "Option c, argument `$2'" ; shift 2 ;; esac ;; --) shift ; break ;; *) echo "Internal error!" ; exit 1 ;; esac done