Pense em um script que realiza uma tarefa importante. Um script daqueles que você resolve guardar, porque sabe que vai usar muitas vezes no futuro. Um script bem feito.

É muito provável que esse script seja fácil de usar. Provavelmente, ele apresenta opções simples de entender, possui um texto de ajuda e, sempre que você esquece aquela opção tão útil, basta digitar: comando -h para receber o belo texto de ajuda.

Que tal se todos os seus scripts fossem assim? Seria ótimo, não? Mas dá muito trabalho… Será?

Apresento-lhes o getopts. Trata-se daquela mesma funcionalidade — geralmente chamada getopt (no singular) presente em praticamente todas as linguagens de programação, com uma lista dos parâmetros, a informação de quais deles requerem argumentos, e uma lista de seus significados para o código do programa. (…) (via IBM DeveloperWorks)