Übergabeparameter auswerten (Beispielscript)

Einem Skript können Parameter übergeben werden. Hierzu werden üblicherweise [OPTIONS] verwendet, die entweder eine Funktion aktivieren oder auch einen zusätzlichen Parameter übergeben.

Mit folgendem Quelltext können Übergabeparameter ausgewertet werden:

#! /bin/bash

function err_text {
while [ $# -gt 0 ] ; do
  echo "$1" 1>&2 # Ausgabe auf stderr
  shift
done
echo "`basename $0` [-ab -c Wert -d Wert] file" 1>&2 # Ausgabe auf stderr
exit 1
}

# Sortieren und überprüfen der Parameter (":" bedeutet, dass der vorangestellte Parameter
# zusätzlich einen Wert benötigt)
set -- `getopt "abc:d:" "$@"` || err_text
# Startparameter setzen
variable_a=0
variable_b=0
variable_c=""
variable_d=""

# Parameter in Endlosschleife abfragen
# Bei Parametern mit Übergabeparameter muss stets ein "shift" ausgeführt werden!
while : ; do
  case "$1" in
    -a) variable_a=1;;
    -b) variable_b=1;;
    -c) shift; variable_c=$1;;
    -d) shift; variable_d=$1;;
    --) break;;
  esac
  shift
  [ $# -eq 0 ] && break # Fehler in den angegebenen Parametern
done
shift
[ $# -lt 1 ] && err_text # kein Dateiname wurde übergeben

# Dateien abarbeiten
while [ $# -ge 1 ]; do
  if [ -f "$1" ]; then
    # 
  else
    err_text "`basename $0` - Datei '$1' existiert nicht"
  fi
  shift
done