[bash] if then else (o altro)

2007-07-11 Per discussione Pol Hallen

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?

Grazie
Pol


--
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]



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

2007-07-11 Per discussione Giulio Canevari

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]