Bonjour,
dans
if [ $i = "aaa" ]
ca deconne parfois parce que si $i est vide alors
ca donne if [ = "aaa" ] et, la, ca veut rien dire,
et ca donne des erreurs enervantes a debuguer si
on n'a pas bien prevu tous les cas, alors, je
rajoute presque tout le temps une lettre bidon ( x par exemple) :
if [ ${i}x = "x" ]
then
echo "variable vide"
fi
ou d'une autre forme
if [ x$i = x"ce que je cherche" ]
then
echo "j'ai trouve ma chaine"
fi
Ces formes ne sont parfois pas satisfaisantes parce que
si $i vaut "aa bb" alors, en remplacant, on obtient :
if [ xaa bb = x"ce que je cherche" ]
then
echo "j'ai trouve ma chaine"
fi
et, la, ca deconne encore, if [ xaa bb = x"ce que je cherche" ] est
une expresion imbecile, donc, ceci convient mieux :
if [ x"${i}" = x"ce que je cherche" ]
then
echo "j'ai trouve ma chaine"
fi
biensur, c'est pareil que :
if [ "x${i}" = "xce que je cherche" ]
mais le truc de la lettre factice est moins mis en evidence
et c'est plus dur a lire.
pour comparer des chiffres, peut-etre que rajouter 0
au lieu de x peut marcher.
i=2
if [ "0${i}" -lt 3 ]
then
echo "plus petit"
fi
mais dans ce cas, il faut penser que si $i n'est pas defini,
alors on va comparer 0 a 3 :
if [ "0${i}" -lt 3 ] va donner if [ 0 -lt 3 ] et ce sera
vrai dans ce cas.
Si ca peut aider.....