In data 11/07/2007 20:19 Pol Hallen ha scritto:
Ciao a tutti,
sono in difficolta' circa uno script che sto scrivendo,
ho messo:

if [ -z "$!"]
then echo "normal exit"
exit
else

e quindi, se allo script non ci passo nulla, esce normalmente.

Quello che dovrei aggiungere (e questo e' il problema) e':

se specifico un nome di file, lo script processa quel file. Se ci metto wav lo script processa tutti i file in quella dir.

Non so cosa usare, se case o un if then else o altro.

Cose consigliate?

Io farei così, ma non ho molta esperienza con l'sh:


while [ "$1" != "" ] ; do
    case $1 in
    --help|-h)
        usage
        exit 0
    ;;
    *)
        INPUTFILE="$1"

        chiama la funzione che svolge il lavoro

    esac

    shift [ così passi al file successivo ]

done

Un'esempio di funzione:

usage ()
{
    echo "Usage: `basename $0` [OPTIONS] [FILE1] [FILE2] ..."
}

un'altro, che usa la variabile INPUTFILE quindi ti potrebbe essere d'aito per capire come poi usare i singoli file:

is_image ()
{
    ISIMAGE=""
        if [ -e "$INPUTFILE" ]; then
        MAGIC=$( file -bi "$INPUTFILE" )
        MAGICBASE=$( echo $MAGIC | cut -f 1 -d "/" )
                IMAGETYPE=$( echo $MAGIC | cut -f 2- -d "/" )
        if [ "$MAGICBASE" != "image" ] ; then
                echo $INPUTFILE: "Not an image" >/dev/stderr
                else
                        ISIMAGE="1"
        fi
    else
                echo "$INPUTFILE" : "File not found!"  >/dev/stderr
    fi
}       


Ciao.
--
Giulio Canevari


--
Per REVOCARE l'iscrizione alla lista, inviare un email a [EMAIL PROTECTED] con oggetto "unsubscribe". Per
problemi inviare un email in INGLESE a [EMAIL PROTECTED]

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Rispondere a