On Tue, 18 Feb 2003, Bertrand Zuchuat wrote:

> 
> Le Mardi, 18 fév 2003, à 16:45 Europe/Zurich, Daniel Cordey a écrit :
> 
> > for IMG in $(ls *.jpg)
> Lorsque je mets la ligne ci-dessus, j'obtiens le message suivant dans 
> le terminal
> ls: *.jpg: No such file or directory
# Là tu execute la commande ``ls *.jpg'' (event l'alias ls=!)
for IMG in $(/bin/ls *.jpg)
# evite bien des problèmes

> Avec for IMG in ls *.jpg

# Là tu fais une liste dont ``ls'' est le premier element...
# ``aaa.jpg'' et ``aab.jpg'' seraient des élements suivants probables...

# tu pourrais:
for IMG in *.jpg
# cela irait mieux...

# Mais une bonne manière de faire pourrait être:
# ...
cd IMGDIR
find -type f -iname '*.jpg' -maxdepth 1 -printf "%f\n" |\
  while read IMG ;do
    date +"%d.%m.%Y %H:%M:%S Transferring $IMG to $DESTHOST" >>$LOGFILE
    if curl -T -u $USERPASS "$IMG" $DESTURL
      then
        echo >>$LOGFILE "             Transfer OK"
        rm -f "$IMG"
      else
        echo >>$LOGFILE "             Transfer failed"
      fi
    done

# la boucle ``while...do...done'' ne s'effectue qu'en fonction de la
# sortie de la commande find (càd ne s'effectue pas si pas de fichiers).

# find recherche les fichiers correspondants à *.jpg, casse indifférente!

# le format ``%f\n'', la technique ``while read'' et les guillemets à la
# commande curl ``"$IMG"'' autorisent les espaces dans les noms de
# fichiers.

# petite astuce:
#  pourquoi `` echo "$(date +'... '' ?
#  ;-)


--
 Félix Hauri  -  <[EMAIL PROTECTED]>  -  http://www.f-hauri.ch




--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.

Répondre à