Process all arguments except the first one (in a bash script)

I have a simple script where the first argument is reserved for the filename, and all other optional arguments should be passed to other parts of the script.

Using Google I found this wiki, but it provided a literal example:

echo "${@: -1}"

I can’t get anything else to work, like:

echo "${@:2}"


echo "${@:2,1}"

I get “Bad substitution” from the terminal.

What is the problem, and how can I process all but the first argument passed to a bash script?

5 s

Leave a Comment