convert(1) n'est-il pas assez intelligent pour détecter le format d'entrée ?
Par ailleurs, un fichier JPEG peut avoir une extension quelconque, comme l'a dit NeoX, mais même sans chercher bien loin : .jpg, .jpeg, .JPG, .Jpeg, etc.
Pour répondre à la question, case permet de faire du matching limité :
$ while read line; do
> case $line in
> *.[Jj][Pp][Gg]|*.[Jj][Pp][Ee][Gg])
> echo "C'est un fichier JPEG (peut-être)"
> ;;
> *)
> echo "C'est pas du JPEG"
> ;;
> esac
> done
blah.png
C'est pas du JPEG
blah.jpeg
C'est un fichier JPEG (peut-être)
blah.JPG
C'est un fichier JPEG (peut-être)
blah.jpeg2000
C'est pas du JPEG
Sinon, dans sa forme le script me paraît améliorable :
#Pour vérifier s'il y a au moins 1 argument.
if [ $# -eq 0 ];then
echo "Veuillez entrer un nom de fichier"
else
#Pour déclarer le répertoire en cours comme lieu d'éxécution.
cd ./
fichiers=*.jpg
fi
fichiers=1ドル
Ceci signifie : si l'utilisateur ne donne aucun argument, alors on le dispute (mais on continue), sinon on met dans $fichiers la liste des .jpg du dossier. Mais de toute façon, à la ligne suivante on met dans $fichiers le premier argument (qui est peut-être vide, puisque si l'utilisateur n'a pas donné d'arguement on a décidé de continuer).
#Pour déclarer le répertoire en cours comme lieu d'éxécution.
cd ./
Que veux-tu faire là ? cd . est toujours un no-op (sauf cas très particulier). Donc ceci peut partir.
[^] # Re: re
Posté par Frédéric Perrin (site web personnel) . En réponse au message Modifications images. Évalué à 1.