Bash script template: Diferență între versiuni

De la Wiki.lug.ro
Salt la: navigare, căutare
(Pagină nouă: Un template simplu pentru un script BASH. <pre> #!/bin/sh # bash script template versiunea 0.1 #DBG=1 VERSIUNE=0.1 # functie de utilizare utilizare() { HLP="programulmeu versiun...)
 
m
 
Linia 73: Linia 73:
 
case "$ACTIUNE" in
 
case "$ACTIUNE" in
 
     fanistechestii) fanistechestii;;
 
     fanistechestii) fanistechestii;;
     faaltechestii) fanaltechestii;;
+
     faaltechestii) faaltechestii;;
 
     *) fachestiaimplicita;;
 
     *) fachestiaimplicita;;
 
esac
 
esac

Versiunea curentă din 20 septembrie 2010 15:25

Un template simplu pentru un script BASH.

#!/bin/sh
# bash script template versiunea 0.1
#DBG=1
VERSIUNE=0.1

# functie de utilizare
utilizare() {
HLP="programulmeu versiunea $VERSIUNE
utilizare: $0 [optiuni] primulargument [aldoileaargument]

optiuni:

    -param <param>	exemplu de argument ce necesita parametru
    -h, --help		acest ajutor
    --debug		activeaza informatii de depanare
    -v, --version	afiseaza versiunea
    
";
echo "$HLP";
}

terminare() {
    ecode=$1; shift
    echo "Eroare $ecode: $@"
    [ $DBG ] && echo "Cod de iesire: $ecode"
    exit $ecode
}

fanistechestii() {
    echo "fac niste chestii..."
}

faaltechestii() {
    echo "fac ALTE chestii..."
}

fachestiaimplicita() {
    echo "fac chestia IMPLICITA..."
}


# parcurgere parametri
while [ $# -gt 0 ]; do
  case "$1" in 
# optiunea necesita parametru
    -param ) [ $2 ] || terminare 2 "$1: necesita un parametru"; PARAMETRU="$2"; shift 2 ;;

    -fanistechestii ) ACTIUNE=fanistechestii; shift ;;
    -faaltechestii ) ACTION=faaltechestii; shift ;;

    -q|--quiet) QUIET=1; shift;;
    -v|--verbose) VRB=1; shift;;
    -h | --help ) usage; exit 0 ;;
    -ver*|-version ) echo "Versiunea $VERSIUNE"  ; exit 1 ;;
    --debug) DBG=1; shift ;;
   * ) 
    if [ -z $PRIMULARG ]; then PRIMULARG="$1"
    elif [ -z $ALDOILEAARG ]; then ALDOILEAARG="$1"
    fi
    shift ;;
  esac
done

[ $DBG ] && VRB=1 # activeaza informatii detaliate daca debugging e activat
[ $DBG ] && echo "intru in programul principal"
[ $DBG ] && echo "valori variabile interne: ACTIUNE=$ACTIUNE; PARAMETRU=$PARAMETRU; PRIMULARG=$PRIMULARG; etc"

[ $VRB ] && echo "afisez niste informatii detaliate..."

case "$ACTIUNE" in
    fanistechestii) fanistechestii;;
    faaltechestii) faaltechestii;;
    *) fachestiaimplicita;;
esac

echo "Am terminat."