Argument parsing using a for loop

suggest change

A simple example which provides the options:

Opt | Alt. Opt | Details — | — | — -h | --help | Show help -v | --version | Show version info -dr path | --doc-root path | An option which takes a secondary parameter (a path) -i | --install | A boolean option (true/false) -* | – | Invalid option

#!/bin/bash
dr=''
install=false

skip=false
for op in "$@";do
    if $skip;then skip=false;continue;fi
    case "$op" in
        -v|--version)
            echo "$ver_info"
            shift
            exit 0
            ;;
        -h|--help)
            echo "$help"
            shift
            exit 0
            ;;
        -dr|--doc-root)
            shift
            if [[ "$1" != "" ]]; then
                dr="${1/%\//}"
                shift
                skip=true
            else
                echo "E: Arg missing for -dr option"
                exit 1
            fi
            ;;
        -i|--install)
            install=true
            shift
            ;;
        -*)
            echo "E: Invalid option: $1"
            shift
            exit 1
            ;;
    esac
done

Feedback about page:

Feedback:
Optional: your email if you want me to get back to you:



Table Of Contents