Uno script in bash
tba221
tba221@libero.it
Sab 26 Feb 2005 00:01:38 CET
alexic wrote:
> Salve,
> mi sono ritrovato a dover realizzare uno script in bash.
> Questo script dovrebbe convertire molti file doc in pdf tramite wvPDF,
> quindi comprimerli con il comando zip.
>
> ###############
> #!/bin/bash
> $a='ls'
> for $a in $b
> do
> wvPDF $b.doc $b.pdf
> zip $b.pdf $b.zip
> done
> ################
>
> Questo è quello che ho pensato di fare, tuttavia non funziona perchè i
> file da zippare contengono nomi all'interno dei loro spazi quindi...
> dovrei rinominare tutti i file? oppure c'è un altro metodo?
1) La prima riga dovrebbe essere #!/bin/bash e non la seconda (cmq,
questa è una fesseria);
2) l'apice singolo utilizzato in 'ls' non risolve la variabile ma
dichiara ls stessa come stringa, dovresti utilizzare il backtick o apice
rovesciato ` (alt+096);
3) dovrebbe essere "for b in $a" e non quello che hai scritto tu.
Questa è la mia versione:
----------------------------
#!/bin/sh
#
a=`ls`
for b in ${a//[= =]/_}
do
wvPDF $b ${b/.doc/.pdf}
zip ${b/.doc/.pdf} ${b/.doc/.zip}
done
---------------------------
in questo modo ogni file che contiene uno spazio e.g. "tba 221.doc"
verrà rinominato in "tba_221.doc".
Ciao, :-)
tba221
P.S. Ma la ML palermo@lists.linux.it funziona?
Maggiori informazioni sulla lista
palermo