#! /usr/bin/bash help=0 verbose=0 level="" # parsing the valid arguments VALID_ARGS=$(getopt -o hvl: --long help,verbose,level: -- "$@") if [[ $? -ne 0 ]]; then exit 1; fi eval set -- "$VALID_ARGS" print_params() { count=0 for var in "$@" do echo "Param ${count}: ${var}" count=$((${count} + 1)) done } print_params "$@" echo "VALID_ARGS=${VALID_ARGS}" eval set -- "$VALID_ARGS" print_params "$@" while [ : ]; do case "${1}" in -h | --help) help=1 shift ;; -v | --verbose) verbose=1 shift ;; -l | --level) level="${2}" shift 2 ;; --) shift; break ;; *) echo "unbekannter Parameter ${1}" exit 1 esac done echo "help=${help}" echo "verbose=${verbose}" echo "level=${level}"