|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 1218
|
aiuto su esercizio semplice script
Salve ragazzi devo realizzare questo script ma non riesco a capire comne fare per
confrontare i 2 file e verificare quale dei due e piu aggiornat o piu vecchio l'esercizio è questo: Realizzare uno script connect.bash <file1> <file2> che dati <file1> e <file2>, verifica, ogni 10 secondi quale dei due è piu nuovo, e copia quindi il piu recente sul piu vecchio. Segnalare ogni operazione di copia sullo standard output. Qualora venga un numero di argomenti diverso da due, segnala l'errore ed esce. Se all'inizio o durante il funzionamento uno dei due file non esiste, lo crea, verificando che la directory che lo deve ospitare esista. Se invece ambedue i file non esistono, esce. mi aiutate?
__________________
Athlon64 3500 (Winchester), Asus A8V-E Deluxe, X700Pro 256MB, Maxtor 200GB Sata,Ali Enermax 400W, Mast. Pionner 109,Lettore dvd LG, Creative 2.1 3200, LG 1980q, Canon Pixma mp500. |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Codice:
if [ $file1 -nt $file2 ]; then
echo "file1 e` piu` recente di file2"
elif [ $file2 -nt $file1 ]; then
echo "file2 e` piu` recente di file1"
else
echo "file1 = file2"
fi
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 1218
|
per "nuovo" intendo l'ultimo che è stato modificato....non la data di creazione ma quela di modifica...
__________________
Athlon64 3500 (Winchester), Asus A8V-E Deluxe, X700Pro 256MB, Maxtor 200GB Sata,Ali Enermax 400W, Mast. Pionner 109,Lettore dvd LG, Creative 2.1 3200, LG 1980q, Canon Pixma mp500. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 1218
|
mi sembra nche funzia lo stesso...
stasera riprovo bene
__________________
Athlon64 3500 (Winchester), Asus A8V-E Deluxe, X700Pro 256MB, Maxtor 200GB Sata,Ali Enermax 400W, Mast. Pionner 109,Lettore dvd LG, Creative 2.1 3200, LG 1980q, Canon Pixma mp500. |
|
|
|
|
|
#5 | ||
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
La documentazione del comando "test" dice: Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
||
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 1218
|
si hai ragione ok grazie....
e per questo cosa mi suggerisci? Se all'inizio o durante il funzionamento uno dei due file non esiste, lo crea, verificando che la directory che lo deve ospitare esista.
__________________
Athlon64 3500 (Winchester), Asus A8V-E Deluxe, X700Pro 256MB, Maxtor 200GB Sata,Ali Enermax 400W, Mast. Pionner 109,Lettore dvd LG, Creative 2.1 3200, LG 1980q, Canon Pixma mp500. |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Comunque ammettiamo di doverla creare, se non esiste. Ti posto una funzione che puoi usare nel tuo script (adattala ovviamente alle tue esigenze): Codice:
function check_file ()
{
local F=$1
local DIR
if [ ! -e $F ]; then
DIR=`dirname $F`
if [ ! -d $DIR ]; then
mkdir -p $DIR
fi
echo -n "" > $F
fi
}
Codice:
... check_file $FILE1 check_file $FILE2 ...
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 1218
|
no non deve crearla deve solo mandare un messagio d'errore e non fare nulla...
se ce crea il file... cmq grazie mi sei davvero d'aiuto
__________________
Athlon64 3500 (Winchester), Asus A8V-E Deluxe, X700Pro 256MB, Maxtor 200GB Sata,Ali Enermax 400W, Mast. Pionner 109,Lettore dvd LG, Creative 2.1 3200, LG 1980q, Canon Pixma mp500. |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 1218
|
questo è l'esempio:
[usr@host Esempi]$ connect.bash NonEsiste/ping.txt NonEsiste/pong.txt connect.bash: NonEsiste is not an accessible directory [usr@host Esempi]$ connect.bash ping.txt pong.txt & [1] 10796 [usr@host Esempi]$ connect.bash: Copying pong.txt to ping.txt [usr@host Esempi]$ echo 'Ping!' > ping.txt [usr@host Esempi]$ connect.bash: Copying ping.txt to pong.txt [usr@host Esempi]$ rm pong.txt; ls ping.txt [usr@host Esempi]$ connect.bash: Copying ping.txt to pong.txt [usr@host Esempi]$ ls ping.txt pong.txt [usr@host Esempi]$ kill 10796 [usr@host Esempi]$ ls ping.txt pong.txt [1]+ Terminated connect.bash ping.txt pong.txt
__________________
Athlon64 3500 (Winchester), Asus A8V-E Deluxe, X700Pro 256MB, Maxtor 200GB Sata,Ali Enermax 400W, Mast. Pionner 109,Lettore dvd LG, Creative 2.1 3200, LG 1980q, Canon Pixma mp500. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:39.



















