Processing shell program arguments
Method 1: Without using getopts
while [[ $# > 1 ]] do key="$1" case $key in -u|--user) _USER="$2" shift # past argument ;; -s|--server) _SERVER="$2" shift # past argument ;; *) # unknown option printf "Usage: %s: [-s <server> -u <user name>]\n" $0 exit 2 ;; esac shift # past argument or value done
Method 2: Using getopts
while getopts "q:" opt; do case $opt in u) _USER=$OPTARG ;; s) _SERVER=$OPTARG ;; \?) # unknown option printf "Usage: %s: [-s <server> -u <user name>]\n" $0 exit 2 ;; esac done