Félix Hauri
Tue, 18 Feb 2003 10:26:03 -0800
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.