[Primipassi] SH

Francesco Poli frx@firenze.linux.it
Mar 4 Giu 2002 01:01:51 CEST


On 2002.06.03 21:56:57 +0200 HDD wrote:
> ciao Francesco i file mi sono arrivati tutti e 2....ma non capisco
> come
> mai non riesco a vedere i miei  post.....grazie cmq...!

Questo e` un vero mistero...
Confronta con l'archivio della mailing list per vedere esattamente quali
messaggi non hai ricevuto (tutti gli altri messaggi li ricevi?)...

[...]
> e qui sta il problema ....quando lista i file , sono presenti TUTTI ma
> al secondo giro del for....sono gia' stati spostati e la dir gia'
> esiste
> e quindi mi da un errore per ogni file che non trova.....non che non
> vada....solo che mi fa "sporco" e sicuramente lo rallenta.

Prova a sostituire

> #crea la directory
>       mkdir $dirname

Con

#crea la directory, se non esiste gia`
      test -d $dirname || mkdir $dirname

Almeno la shell si astiene da chiedere a mkdir di creare una directory
gia` esistente.

Rimane comunque un problema: se esiste gia` un file di nome $dirname, ma
questo *non* e` una directory, succede un disastro (il file puo` essere
sovrascritto da tutti i file che dovrebbero finire nella directory
$dirname: in pratica di tutti questi file sopravvive solo l'ultimo!).
Per rendere piu` robusto il tutto e` opportuno anteporre un ulteriore
test:


#controlla che non esista gia` un file (non directory) di nome $dirname
      if test -e $dirname && test ! -d $dirname
      then
            echo 'warning: '$dirname' already exists!'
      else
#crea la directory, se non esiste gia`
            test -d $dirname || mkdir $dirname
#muove i file dentro la directory
            mv $1"/"$s $dirname
      fi


Tra l'altro l'uso della variabile di ciclo $s ti dovrebbe eliminare
anche i messaggi di errore "no such file or directory" generati da mv.

Ciao e verifica bene il funzionamento di queste modifiche che ti ho
proposto... sono stanco e non garantisco nulla: se qualcuno e` convinto
che ho detto delle boiate, e` possibile... correggetemi!  ;-)
-- 
      Francesco Poli   <frx@firenze.linux.it>
===================================================
 "May the Source be with you!"  -- Eric S. Raymond




Maggiori informazioni sulla lista primipassi