Script shell: condition if pour trim image

Résolu
snow_frog Messages postés 214 Date d'inscription   Statut Membre Dernière intervention   -  
snow_frog Messages postés 214 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

voila un début de script qui me pose probleme
théorie:
le script permet d'effectuer un trim des bords des images par l'intermediaire d'imagemagick
l'utilisateur rentre le nom de ficheir ou l'extention qu'il souhaite "trimmer"
et le script lui trim les images voulues.

pratique:

dans la premiere partie du script on demande à l'utilisateur de rentrer l'extention
puis si l'extention est "correcte" on effectue le trim sinon on lui dit que l'extention n'est pas bonne:

#!/bin/bash

echo -n "
extention des images à trimmer (*.jpg *.gif *.png *.tif *.bmp)? "
read FORMAT

if 
then  # boulce format valide
echo "l'extention $FORMAT est valide pour trim"
#mogrify -trim $FORMAT
else # boucle format non valide
echo "l'extention $FORMAT n'est pas valide pour trim "
fi


avec ce code, quand je teste mon script, il passe toujours dans la boucle "format valide"
et ce avec n'importe quelle extention en entrée.

quelle est la syntaxe qui cloche dans ce script ?
dans la définition de la confition if ?

merci de votre aide

2 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Il faudrait peut être mettre une condition à tester non ?
    if quoi ?
    #!/bin/bash
    
    echo -n "
    extention des images à trimmer (jpg gif png tif bmp)? "
    read FORMAT
    
    if [ $FORMAT = "jpg"  -o  $FORMAT = "gif" -o  $FORMAT = "png" -o  $FORMAT = "tif"  -o  $FORMAT = "bmp"  ]
    then  # boulce format valide
    echo "l'extention $FORMAT est valide pour trim"
    #mogrify -trim $FORMAT
    else # boucle format non valide
    echo "l'extention $FORMAT n'est pas valide pour trim "
    fi
    Tu peux aussi l'écrire comme ça :
    #!/bin/bash
    
    echo -n "
    extention des images à trimmer (jpg gif png tif bmp)? "
    read FORMAT
    
    case "${FORMAT}" in
    jpg|gif|png|tif|bmp)    echo "l'extention $FORMAT est valide pour trim"
                            ;;
    *)                      echo "l'extention $FORMAT n'est pas valide pour trim "
                            ;;
    esac
    PS. J'ai enlevé le ".*" avant l'extension pour la demande et le test (plus facile), tu le rajouteras dans la commande...

    ;-)
    1
  2. snow_frog Messages postés 214 Date d'inscription   Statut Membre Dernière intervention   139
     
    oups probleme de copier coller:

    voilà l'original de la condition:

    if double crochet $FORMAT = *.jpg || *.bmp || *.gif || *.png || *.tif double crochet

    merci pour l'autre solution.
    0