It is modestly complex. The quickest way is also unreliable:
case "$*" in (*-h*) echo "Has -h";; eascesac ThatUnfortunately that will also spot "command this-here" as having "-h".
Normally you'd use getopts to parse for arguments that you expect:
while getopts habcf: opt do case "$opt" in (h) echo "Has -h";; ([abc]) echo "Got -$opt";; (f) echo "File: $OPTARG";; esac done shift (($OPTIND - 1)) # General (non-option) arguments are now in "$@" Etc.