Torna indietro   Hardware Upgrade Forum > Software > Linux, Unix, OS alternativi

Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-12-2005, 18:13   #1
xwang
Senior Member
 
L'Avatar di xwang
 
Iscritto dal: Oct 2003
Messaggi: 2987
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
xwang è offline   Rispondi citando il messaggio o parte di esso
Old 09-12-2005, 13:53   #2
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
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.
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 09-12-2005, 20:16   #3
xwang
Senior Member
 
L'Avatar di xwang
 
Iscritto dal: Oct 2003
Messaggi: 2987
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?
xwang è offline   Rispondi citando il messaggio o parte di esso
Old 09-12-2005, 20:47   #4
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
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.
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 09-12-2005, 21:11   #5
xwang
Senior Member
 
L'Avatar di xwang
 
Iscritto dal: Oct 2003
Messaggi: 2987
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
xwang è offline   Rispondi citando il messaggio o parte di esso
Old 09-12-2005, 22:55   #6
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
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
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 09-12-2005, 23:10   #7
xwang
Senior Member
 
L'Avatar di xwang
 
Iscritto dal: Oct 2003
Messaggi: 2987
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
xwang è offline   Rispondi citando il messaggio o parte di esso
Old 09-12-2005, 23:30   #8
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
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)
kingv è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 05:14.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v