flag=$f;; c) carg=$OPTARG;; \?) echo $USAGE; exit 1;; esac done shift $((OPTIND - 1)) This ... file file cmd -carg -a file file cmd -a -carg -- file file hash [ command ... ] hashflag=$f;; c) carg=$OPTARG;; \?) echo $USAGE; exit 1;; esac done shift $((OPTIND - 1)) This ... file file cmd -carg -a file file cmd -a -carg -- file file hash [ command ... ] hash