Le if fonctionne très bien, mais c’est le test de comparaison que tu avais mal formulé.
Tu n’avais pas mis d’espaces avant et après l’opérateur ==
ce qui fait que l’ensemble "$ext"=="jpg" ne faisait au final qu’un seul mot,
ce qui faisait disparaître l’opérateur ==
Donc le test ne faisait aucune comparaison puisque tes deux caractères « == » faisaient partie du seul et unique mot qu’il y avait dans le test .
Le résultat du test, sans opérateur, était donc toujours vrai
quelle que soit la valeur assignée à la variable ext
Pour comparer deux chaînes de caractères, un seul caractère = est suffisant.
Essaye plutôt comme ça :
#!/bin/bash
echo "saisir une extension:"
read ext
echo "$ext"
if [ "$ext" = "jpg" ]; then
echo "fichier image"
else
echo "pas image"
fi