j'ai fait un petit script qui me convertit les grosses images en plus
petites à l'aide de convert d'ImageMagick. Seul hic, je n'arrive pas à m'en
sortir avec des noms de fichiers du type "Photo 011.jpg" car il y a un
espace dans le nom et ça me compte comme deux arguments. C'est à dire que
quand je tape "convertImage" (le nom de mon script) dans un répertoire avec
des images nommées "Photo 001.jpg / Photo 002.jpg / ...", ça part en live
car le script essaye de traiter Photo, puis 001.jpg, puis Photo, puis
002.jpg et ainsi de suite.
Comment spécifier au script de prendre l'ensemble du nom comme argument ?
Voici le script :
for f in $* ; do
convert -geometry 800*800 $f r_$f
done
j'ai essayé de faire un :
ff=''
while [ f != .jpg] ; do
ff=ff\ f
done
mais ça ne passe pas.
Idem, j'ai essayé de faire un
for f in 'ls | grep .jpg' ; do ...
mais je n'ai pas plus de résultat.
Peutr-être y a-t-il une commande qui me renverrait les fichiers du
répertoire entre doubles quotes ou du genre ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
T'aZ
On Thu, 29 Jul 2004 20:16:30 +0200, Arnaud wrote:
hello !
eth0 ! (ok c tres lourd mais il est tard :p)
Comment spécifier au script de prendre l'ensemble du nom comme argument ? Peutr-être y a-t-il une commande qui me renverrait les fichiers du répertoire entre doubles quotes ou du genre ?
Une idée ?
et si tu les mettais toi meme les double quotes ? :p
un truc style for i in * ; do convert -geometry 800*800 "$i" "r_$i" ; done
:)
merci
de rien
-- T'aZ |Jabber:|GPG keyID:E051925D|http://taz.prout.be *They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.* Benjamin Franklin 1759 *Beaucoup,vite,loin,mal.* http://www.cl.cam.ac.uk/~rja14/tcpa-faq.html
On Thu, 29 Jul 2004 20:16:30 +0200, Arnaud wrote:
hello !
eth0 ! (ok c tres lourd mais il est tard :p)
Comment spécifier au script de prendre l'ensemble du nom comme argument
?
Peutr-être y a-t-il une commande qui me renverrait les fichiers du
répertoire entre doubles quotes ou du genre ?
Une idée ?
et si tu les mettais toi meme les double quotes ? :p
un truc style
for i in * ; do convert -geometry 800*800 "$i" "r_$i" ; done
:)
merci
de rien
--
T'aZ |Jabber:taz-007@jabber.org|GPG keyID:E051925D|http://taz.prout.be
*They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety.* Benjamin Franklin 1759
*Beaucoup,vite,loin,mal.* http://www.cl.cam.ac.uk/~rja14/tcpa-faq.html
Comment spécifier au script de prendre l'ensemble du nom comme argument ? Peutr-être y a-t-il une commande qui me renverrait les fichiers du répertoire entre doubles quotes ou du genre ?
Une idée ?
et si tu les mettais toi meme les double quotes ? :p
un truc style for i in * ; do convert -geometry 800*800 "$i" "r_$i" ; done
:)
merci
de rien
-- T'aZ |Jabber:|GPG keyID:E051925D|http://taz.prout.be *They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.* Benjamin Franklin 1759 *Beaucoup,vite,loin,mal.* http://www.cl.cam.ac.uk/~rja14/tcpa-faq.html
Unknown
quand je tape "convertImage" (le nom de mon script) dans un répertoire avec des images nommées "Photo 001.jpg / Photo 002.jpg / ...", ça part en live car le script essaye de traiter Photo, puis 001.jpg, puis Photo, puis 002.jpg et ainsi de suite.
il n'y a pas une FAQ unix ? ca revient souvent cette question des espaces.
quand je tape "convertImage" (le nom de mon script) dans un répertoire avec
des images nommées "Photo 001.jpg / Photo 002.jpg / ...", ça part en live
car le script essaye de traiter Photo, puis 001.jpg, puis Photo, puis
002.jpg et ainsi de suite.
il n'y a pas une FAQ unix ?
ca revient souvent cette question des espaces.
quand je tape "convertImage" (le nom de mon script) dans un répertoire avec des images nommées "Photo 001.jpg / Photo 002.jpg / ...", ça part en live car le script essaye de traiter Photo, puis 001.jpg, puis Photo, puis 002.jpg et ainsi de suite.
il n'y a pas une FAQ unix ? ca revient souvent cette question des espaces.
Stephane Chazelas
2004-07-29, 20:16(+02), Arnaud: [...]
for f in $* ; do convert -geometry 800*800 $f r_$f done
Les arguments est ce sur quoi itere "for" par defaut:
for f do convert -geometry 800*800 "$f" "r_$f" done
Tu peux aussi faire:
for f in "$@"
(qui marche moins bien sur certains vieux shells)
Voir http://groups.google.com/groups?selm= pour plus de details.
-- Stephane
2004-07-29, 20:16(+02), Arnaud:
[...]
for f in $* ; do
convert -geometry 800*800 $f r_$f
done
Les arguments est ce sur quoi itere "for" par defaut:
for f
do
convert -geometry 800*800 "$f" "r_$f"
done
Tu peux aussi faire:
for f in "$@"
(qui marche moins bien sur certains vieux shells)
Voir
http://groups.google.com/groups?selm=slrncgi13u.r8.stephane.chazelas@spam.is.invalid
pour plus de details.
for f do convert -geometry 800*800 "$f" "r_$f" done [...]
for f in "$@"
merci, c'était là le problème. Avec "$@", tout marche nickel
Et sans "in "$@"", ca marche encore mieux.
-- Stephane
arN
Stephane Chazelas wrote:
Les arguments est ce sur quoi itere "for" par defaut:
for f do convert -geometry 800*800 "$f" "r_$f" done
oups, pardon, erreur en retranscrivant mon script (j'étais pas devant mon ordi linux) : j'avais mis les doubles quotes à "$f" et "$r_f", ce n'était pas de là que venait le pb
Tu peux aussi faire:
for f in "$@"
merci, c'était là le problème. Avec "$@", tout marche nickel
A+
-- Arnaud
Stephane Chazelas wrote:
Les arguments est ce sur quoi itere "for" par defaut:
for f
do
convert -geometry 800*800 "$f" "r_$f"
done
oups, pardon, erreur en retranscrivant mon script (j'étais pas devant mon
ordi linux) : j'avais mis les doubles quotes à "$f" et "$r_f", ce n'était
pas de là que venait le pb
Tu peux aussi faire:
for f in "$@"
merci, c'était là le problème. Avec "$@", tout marche nickel
Les arguments est ce sur quoi itere "for" par defaut:
for f do convert -geometry 800*800 "$f" "r_$f" done
oups, pardon, erreur en retranscrivant mon script (j'étais pas devant mon ordi linux) : j'avais mis les doubles quotes à "$f" et "$r_f", ce n'était pas de là que venait le pb
Tu peux aussi faire:
for f in "$@"
merci, c'était là le problème. Avec "$@", tout marche nickel