[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [bash] if then else (o altro)



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



Reply to: