Menu

getopts

Tento příkaz pro nás znamená velké zjednodušení při zpracování argumentů předaných našim shellovým skriptům, neboť nám umožní zpracovat přepínače. Volání getopts prakticky vždy vypadá následovně:

while getopts dh:m opt
do
    case $opt in
        d) day=1;;
        h) help=$OPTARG;;
        m) month=1;;
        *) echo "Invalid argument";;
    esac
done
shift $(($OPTIND - 1))

Do proměnné $opt je opakovaně přiřazováno jméno zadaného přepínače, v proměnné $OPTARG je pak vždy uložena jeho hodnota, pokud ji dostává. Za přepínače, které očekávají hodnotu, napíšeme při předávání getopts dvojtečku. Příkaz shift na konci zaručí, že z $@ zmizí všechny přepínače (které musí být uvedeny jako první) a zbudou další argumenty, pokud skript nějaké očekává.