#!/bin/bash # basic manual argument parsing usage() { echo "Usage: $0 [--foo FOO] [-v]" 1>&2 } foo="" verbose=false while [[ $# -gt 0 ]]; do case "$1" in --foo) shift foo="$1" shift ;; -v | --verbose) shift verbose=true ;; -help) usage exit 0 ;; -*) usage exit 1 ;; *) break ;; esac done