Prob boucle et variable en shell

bonjour a tous

cela fait plusieur heurs que j essai de résoudre ce prob et je n arrive vraiment pas a voir ce qui cloche et pourtant ca veux absolument pas fonctionner.

je pars d une page web dans laquelle je saisie une donnée, et suivant la donnée je lance un test qui devra effectuer differentes taches.

if [ "$#" -lt 1 ] ;
then
echo 'Il manque des parametres: ACTION=VALUE '
exit 2
fi

//ici recupération de la variable saisie
ACTION=`echo ACTION $* | awk -f /root/apply/shells/get_param.awk `
echo "ACTION vaut $ACTION"

//test si $ACTION est chaine vide ou pas // si non vide je récupere bien $ACTION dans la variable $var
if ["$ACTION" = ""];
then
cd /root/apply/shells
echo $@ > tata
echo "star" >> tata
else
var=$ACTION
cd /root/apply/shells
echo $@ > kiki
echo "la variable est la suivante : $var" >> kiki
fi

jusqu ici tout va bien mais si je test la valeur saisie dans le formulaire qui est soit égale a start ou alors stop de cette facon :

if ["$ACTION" = "start"];
then
cd /root/apply/shells
echo $@ > tata
echo "demarrage effectué" >> tata
fi

et la ben rien, je n 'ai pas de création du fichier tata alors qu avec le pgm précédent j ai vérifier ci récuperais bien la valeur de $ACTION dans la variable var et c le cas

je vois pas du tout ce qui cloche, je compare bien 2 chaine de caract

je suis dans brouillard

un peu d aide sera la bien venue Merci D avance

3 réponses

  1. Modérateur
    Pour moi :
    if ["$ACTION" = "start"]; 

    devrait plutôt s'écrire :
    if [${ACTION} = "start"]; 

    Par ailleurs vérifie le contenu de la variable ACTION en mettant juste avant le test :
    echo ${ACTION}

    Bonne chance
    1. Modérateur
      Salut,

      Moi ce qui me gène c'est plutôt l'absence d'espace de part et d'autre à l'intérieur des crochets (génère une erreur chez moi en shell bash) :
      if [ "$ACTION" = "start" ]
      Par contre l'une ou l'autre des syntaxes ("$ACTION" ou ${ACTION}) ne change rien, les deux sont bonnes (même si celle de mamiemando est préférable).

      Petit détail qui aura peut être son importance : quel shell utilises-tu ?

      ;-)
      1. en fait oui c'est vrai, ce matin je me suis apercu que c'est a cause de l absence d'espace que le programme ne fonctionnait pas du tout. Je suis vert d avoir perdu autant de temps dessus, alors que ce n 'était rien du tout "ca fait longtemps que je n ai pratiquer le shells, et ca ce vois j ai honte de quoi m arracher les cheveux"

        Merci pour votre aide a tout les deux

        Vous avec un lien que je peut visiter qui m expose le shell avec bcp d exemple et peu de blabla mais toujours avec un minimun?
      2. Modérateur
        Hello Jipicy,

        même si celle de mamiemando est préférable

        Il me semble que tu as compris le sens du mot Miss :-))

        C'est bien continue comme ça ;)

        lami20j
      3. Modérateur
        @lami20jSalut lami20J,

        Yes, yes, c'est "mamissmando" maintenant ;-DDD

        PS. Je sais pas pourquoi mais je sens que je vais me faire taper sur les doigts môa ;-))
      4. Modérateur
        @jipicyRe,

        Oui, Oui, attention à tes doigts quand tu parles de Miss :-))

        lami20j