Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I need to write a bash script, and would like it to parse unordered parameters of the format:

scriptname --param1 <string> --param2 <string> --param3 <date>

Is there a simple way to accomplish this, or am I pretty much stuck with $1, $2, $3?


(note - I don't need long parameter names - single letters would be fine too)

share|improve this question
why did you post the same thing on stackoverflow and here? This is more programming related anyway. – John T May 6 '09 at 3:34
That is exactly why. – Brent May 6 '09 at 3:46
up vote 10 down vote accepted

You should use getopt.

share|improve this answer
Thanks - That put me on the right track - I think that I actually want getopts - as it is apparently simpler, and I don't need the long names – Brent May 6 '09 at 3:15
Cool, but you need to fix your question then :) It specifically lists long param names in the example. – pjz May 6 '09 at 3:21
I edited the question, thanks. – Brent May 6 '09 at 3:48

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.