• # Et comme ça (bis) ?

    Posté par . En réponse au message [RESOLU] interprétation de *. Évalué à 2. Dernière modification le 28 mars 2013 à 14:33.

    #!/bin/bash
    function calcul
    {
    if [ 2ドル = '*' ]
    then
    let resultat="1ドル 2ドル 3ドル"
    echo "Le réltat est : $resultat"
    else
    let resultat="1ドル 2ドル 3ドル"
    echo "Le resultat est : $resultat"
    fi
    }
    calcul "1ドル" "2ドル" "3ドル"
    > mon souci concerne l'astérisque. L'opération
    
    

    ./mon_programme 2 * 2 retourne l'erreur suivante

    ./mon_programme: line 8: let: resultat=2 appdata.xml AUTRE: syntax error: invalid arithmetic operator (error token is ".xml AUTRE")

    C'est pacrce que "*" est interprété avant l'appel de ton programme comme étant le contenu du répertoire courant.

    Comme ça a été dit plus haut, il faut protéger le caractère "*" pour qu'il ne soit pas interprété avec un \

    Ca donne ça :

    # ls .
    calcul
    # ./calcul 2 * 3
    ./calcul: line 10: let: resultat=2 calcul 3: syntax error in expression (error token is "calcul 3")
    Le réltat est : 2
    # ./calcul 2 \* 3
    Le réltat est : 6
    
    

    Ensuite avec let, tu as mal placé tes quotes, et c'est pour ça que ça ne fonctionne pas.