Kommandozeilenschalter mit getopts

Die Auswertung von Kommandozeilenschaltern ist eine so übliche Aufgabe, dass es hierfür auch schon fertige Werkzeuge gibt. Das getopts-Kommando der Bourne-Shell-Familie kann das oben genannte Beispiel etwas vereinfachen, wenn auch auf Kosten der langen Optionen, mit denen dieses Kommando nicht umgehen kann. Hier ist das obige Beispiel aus Kapitel 8 noch mal (nur eben ohne lange Optionen):

#!/bin/sh

VERBOSE="0"
OUTFILE=""

while getopts hvo: OPTION
do
  case $OPTION in
    h)
      echo "Benutzung: $0 [<Optionen>]"
      echo "Optionen sind:"
      echo "-h        : diese Hilfe"
      echo "-v        : Statusinformationen"
      echo "-o <file> : Ausgabe in <file>"
      exit 0
      ;;
    v)
      VERBOSE="1"
      ;;
    o)
      OUTFILE="$OPTARG"
      ;;
  esac
done

Beim Aufruf von getopts werden zwei ...

Get Praxiskurs Unix-Shell (O'Reillys Basics) now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.