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
    0
    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 ?

      ;-)
      0
      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?
        0
      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
        0
      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 ;-))
        0
      4. Modérateur
        @jipicyRe,

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

        lami20j
        0