I use getopts to parse arguments in bash scripts as
while getopts ":hd:" opt; do case $opt in d ) echo "directory = $OPTARG"; mydir="$OPTARG"; shift $((OPTIND-1)); OPTIND=1 ;; h ) helptext graceful_exit ;; * ) usage clean_up exit 1 esac done exeparams="$*"
exeparams will hold any unparsed options/arguments. Since I want to use exeparams to hold options for a command to be executed within the script (which can overlap with the scripts own options), I want to use -- to end the options passed to the script. If I pass e.g.
myscript -d myscriptparam -- -d internalparam
exeparams will hold
-- -d internalparam
I now want to remove the leading
-- to pass these arguments to the internal command. Is there an elegant way to do this or can I obtain a string which holds just the remainder without
-- from getopts?