вівторок, 3 вересня 2013 р.

getopts: зручний інструмент для використання в шел-скриптах

Вам доводилося, напевно, створювати нескладні скрипти операційної оболонки Unix/Linux (шел-скрипти), які використовують додаткові опції, вказані у командному рядку. Наприклад:

$ processdata.sh -h

Usage:
processdata.sh [options]

Possible options:
-c <config-file> -- use configuration file
-f -- force conversion
-h -- print usage screen
-v -- be verbose

Забезпечити коректну обробку опцій засобами шелу може бути достатньо складно (адже треба врахувати можливості вказання опцій в довільному порядку, різні варіанти синтаксису, якто -fv або -f -v, та ін.), якщо не користуватися утілітою шела getopts. Ось зразок її використання, гадаю, він не потребує коментарів:

#!/bin/sh

OPTION=""
OPTARG=""

while getopts c:fрv OPTION; do

  case $OPTION in
    c ) CONFIG=$OPTARG;;
    f ) FORCE=1;;

    h ) echo "Usage: $0 [-fhv] [-c <config>]"; exit 0;;
    v ) VERBOSE=1;;
  esac
 

done

echo "CONFIG  = $CONFIG"
echo "FORCE   = $FORCE"
echo "VERBOSE = $VERBOSE"

Немає коментарів:

Дописати коментар