Re: bash : test d'une chaine avec que des " "

Page principale

Répondre à ce message
Auteur: jeanluc
Date:  
À: guilde
Sujet: Re: bash : test d'une chaine avec que des " "
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.....