Bash - test sur la longueur d'une chaine

Arrakis -  
 jj -
Bonjour,

Comme dit dans le titre je cherche a tester la longueur d'une chaine en bash:

[code]
rep=`grep $req fichier`
if [ "${#rep}" = 0 ]; do
...
else
...
[/code]

la variable rep contient bien ce qui est attendu, et ${#rep} contient bien la longueur du retour de grep mais j'ai cette erreur :
[code]
line 7: erreur de syntaxe près du jeton `do' inattendu
line 7: `if [ "${#rep}" = 0 ]; do'
[/code]

j'ai essayé sans les double quote, avec -eq avec == mais rien a faire je n'y arrive pas.

une idée?
merci.
Configuration: Linux
Firefox 2.0.0.11

3 réponses

  1. jj
     
    req="echo"
    fichier="*"
    rep=`grep $req $fichier`

    if [ ${#rep} -eq 0 ]
    then
    echo "bon"
    else
    echo "pas bon"
    fi

    syntaxe du if et égalité numérique
    4
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    if [ "${#rep}" = 0 ]; then
    ...
    else
    ... 
    fi
    ;-))
    2
  3. Arrakis
     
    AAAAAAAH, evidemment :D

    il devait y avoir une boucle a cet endroit dans le temps...

    merci :)
    1