View Full Version : Aiuto per uno script [URGENTE]
Ho scritto il seguente script:
#!/bin/bash
kget $1 ;
/usr/local/kde/bin/./klamav --scanthis $2$( basename $1 ) ;
che prende come primo parametro un url di un file da scaricare e poi lo scansiona con Klamav usando il secondo parametro che contiene l'indirizzo della cartella in cui il file è stato salvato.
Il problema è che klamav parte senza apettare che kget abbia finito il download come invece dovrebbe fare data la presenza del ; alla fine del primo comando.
Dove sbaglio?
Xwang
non conosco kget ma per analogia con wget il programma non dovrebbe uscire fino a che non ha finito di scaricare il file.
il punto e virgola in quel contesto non fa assolutamente niente.
Purtroppo klamav parte prima che finisca kget e ciò crea problemi.
Inoltre dal momento che è possibile che un file sia già presente e che al momento dello scaricamento venga salvato con un nome diverso da quello passato tramite parametro, vorrei sapere se c'è un modo per passare all'antivirus il nome del file appena salvato da kget.
Xwang
Ps se la stessa cosa si può fare meglio con wget , come dovrei modificare lo script?
per il problema del download non finito modifica così il tuo script:
#!/bin/bash
wget $1 && /usr/local/kde/bin/klamav --scanthis $2$( basename $1 )
per il problema del file già esistente non mi viene in mente nulla.
Grazie per l'aiuto!
Per salvare il file nella cartella voluta (quella passata con il secondo parametro come indirizzo assoluto) va bene fare così?
#!/bin/bash
cd $2 && wget $1 && /usr/local/kde/bin/klamav --scanthis $2$( basename $1 )
Per il file già esistente ho pensato che dopo essermi messo nella cartella di download potrei cercare se esiste un file di nome $1 e in tal caso lo rinomino come $1.old e poi avvio wget e klamav come mi hai detto.
Se pensi che vada bene, mi puoi aiutare a passare dalle idee alla pratica?
Xwang
il test lo fai così:
cd $2
filename = $( basename $1 )
if [ -e $filename ]
then
mv $filename $filename.old
fi
wget $1 && /usr/local/kde/bin/klamav --scanthis $2$filename
Grazie molto!!!!
Funziona!!!!
Lo script finale è:
#!/bin/bash
cd $2
if [ -e $( basename $1 ) ]
then
mv $( basename $1 ) $( basename $1 ).old
fi
wget $1 && /usr/local/kde/bin/klamav --scanthis $2$( basename $1 )
Come vedi ho dovuto mettere il basename nel controllo perche la variabile $1 contiene tutta la url.
L'unico dubbio che mi rimane è il capire perchè l'antivirus parte prima della fine del download se si mette kget al posto di wget.
Comunque già così va benissimo :-)
Xwang
Come vedi ho dovuto mettere il basename nel controllo perche la variabile $1 contiene tutta la url.
infatti per evitare di richiamarlo tante volte avevo usato un'altra variabile (filename) ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.