PDA

View Full Version : Problemino con script.........


stefanoxjx
09-03-2004, 15:30
Secondo voi, su questo script:

#!/bin/bash

set -x

umask 0000
WORKDIR=/distiller
LOGFILE=/distiller/log/file.log

cd $WORKDIR

for i in $(ls $WORKDIR)
do
if 'file $i | grep PostScript > /dev/null' then
date +%x-%X >> $LOGFILE
file $i >> $LOGFILE
ps2pdf $i $i.pdf >> $LOGFILE
rm -vf $i
echo >> $LOGFILE
fi
done


Cos'è che gli fa generare questo errore:

./f2pdf: line 19: syntax error near unexpected token `fi'
./f2pdf: line 19: ` fi'

Ho provato a girarlo in tutte le salse, ma nella migliore delle ipotesi, quindi spostando fi subito dopo echo >> $LOGFILE, mi da un'errore di unexpected 'done'

Boooooooooooh!!!!!


Grazie.
Ciao.

#!/bin/sh
09-03-2004, 16:26
Originariamente inviato da stefanoxjx
Secondo voi, su questo script:

#!/bin/bash

set -x

umask 0000
WORKDIR=/distiller
LOGFILE=/distiller/log/file.log

cd $WORKDIR

for i in $(ls $WORKDIR)
do
if 'file $i | grep PostScript > /dev/null' then
date +%x-%X >> $LOGFILE
file $i >> $LOGFILE
ps2pdf $i $i.pdf >> $LOGFILE
rm -vf $i
echo >> $LOGFILE
fi
done


Cos'è che gli fa generare questo errore:

./f2pdf: line 19: syntax error near unexpected token `fi'
./f2pdf: line 19: ` fi'

Ho provato a girarlo in tutte le salse, ma nella migliore delle ipotesi, quindi spostando fi subito dopo echo >> $LOGFILE, mi da un'errore di unexpected 'done'

Boooooooooooh!!!!!


Grazie.
Ciao.

io lo riscriverei così:
#!/bin/bash

set -x

umask 0000
WORKDIR=/distiller
LOGFILE=/distiller/log/file.log

cd $WORKDIR

for i in $(ls $WORKDIR)
do
if 'file $i | grep PostScript > /dev/null'; then
date +%x-%X >> $LOGFILE
file $i >> $LOGFILE
ps2pdf $i $i.pdf >> $LOGFILE
rm -vf $i
echo >> $LOGFILE
fi
done

manca un ; prima del then

Mason
09-03-2004, 16:32
tolgi gli '' dall'if e mettici un ; prima del then

cmq non e il massimo
tipo nel for puoi togliere il $( ma metterci
for i in WORKDIR/*ps
do


cmq un paio di prove


-<mason@aries:/dev/pts/0>--<1835:mar,09 mar 04>-------------------</home/mason>-
-<Yes, Master?>-$/tmp/prova.sh
pcrbo-o.ps
pcrb-o.ps
pcrro-o.ps
pcrr-o.ps
-<mason@aries:/dev/pts/0>--<1835:mar,09 mar 04>-------------------</home/mason>-
-<Yes, Master?>-$ls /tmp/*ps
/tmp/pcrbo-o.ps /tmp/pcrb-o.ps /tmp/pcrro-o.ps /tmp/pcrr-o.ps
-<mason@aries:/dev/pts/0>--<1837:mar,09 mar 04>-------------------</home/mason>-
-<Yes, Master?>-$cat /tmp/prova.sh
#!/bin/bash



umask 0000
WORKDIR=/tmp
LOGFILE=/tmp/log/file.log

cd $WORKDIR

for i in $(ls $WORKDIR)
do
if file $i | grep PostScript > /dev/null ; then
#date +%x-%X >> $LOGFILE
#file $i >> $LOGFILE
#ps2pdf $i $i.pdf >> $LOGFILE
#rm -vf $i
#echo >> $LOGFILE
echo $i
fi
done
-<mason@aries:/dev/pts/0>--<1837:mar,09 mar 04>-------------------</home/mason>-
-<Yes, Master?>-$


mumble

ti conviene mettere un header all inizio del file di log, senno non si capisce quando parte una sessione, all'inizio tipo echo -e \\nInizio procedura $(date)\\n >> LOGFILE
per il ps2pdf userei anche basename

senno,dato un file pippo.ps, con quel comando ottieni pippo.ps.pdf che non e il max, cmq consulta il man di basename.
`basename $i .ps`.pdf questo dovrebbe fungere al posto di $i.pdf

stefanoxjx
09-03-2004, 16:38
Aggiungendo solo il ; mi da i seguenti errori:

+ umask 0000
+ WORKDIR=/distiller
+ LOGFILE=/distiller/log/file.log
+ cd /distiller
++ ls /distiller
+ 'file $i | grep PostScript > /dev/null'
./f2pdf: line 13: file $i | grep PostScript > /dev/null: No such file or directory
+ 'file $i | grep PostScript > /dev/null'
./f2pdf: line 13: file $i | grep PostScript > /dev/null: No such file or directory
+ 'file $i | grep PostScript > /dev/null'
./f2pdf: line 13: file $i | grep PostScript > /dev/null: No such file or directory
+ 'file $i | grep PostScript > /dev/null'
./f2pdf: line 13: file $i | grep PostScript > /dev/null: No such file or directory
+ 'file $i | grep PostScript > /dev/null'
./f2pdf: line 13: file $i | grep PostScript > /dev/null: No such file or directory
+ 'file $i | grep PostScript > /dev/null'
./f2pdf: line 13: file $i | grep PostScript > /dev/null: No such file or directory
+ 'file $i | grep PostScript > /dev/null'
./f2pdf: line 13: file $i | grep PostScript > /dev/null: No such file or directory

mentre seguendo le istruzioni di Mason, funziona tutto alla perfezione.

Grazie a tutti e due per l'aiuto.

P.S. Comunque lo script l'hò copiato da una rivista, ma non sono ancora arrivato a studiare gli script.................ci arriverò.