• [^] # Re: re

    Posté par (site web personnel) . En réponse au message Modifications images. Évalué à 1.

    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.