Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[script] problème avec paramètres

6 réponses
Avatar
Arnaud
hello !

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 ?

Une idée ?

merci
--
Arnaud

6 réponses

Avatar
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

Avatar
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.

Avatar
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

Avatar
Stephane Chazelas
2004-07-30, 08:26(+02), Unknown:
[...]
il n'y a pas une FAQ unix ?
[...]


Si, plein meme. Mais des FAQ usenet, je n'en connais que
d'anglophones. Mais bon, les utilisateurs d'Unix comprennent
l'Anglais en general.

Voir la FAQ de comp.unix.shell a
http://home.comcast.net/~j.p.h/cus-faq.html

Et de maniere generale http://www.faqs.org/faqs/unix-faq/

--
Stephane

Avatar
Stephane Chazelas
2004-07-30, 15:26(+02), arN:
[...]
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


Avatar
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