Prob boucle et variable en shell

herve70 -  
mamiemando Messages postés 34184 Statut Modérateur -
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

mamiemando Messages postés 34184 Statut Modérateur 7 888
 
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
jipicy Messages postés 41342 Statut Modérateur 4 896
 
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
herve70
 
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
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
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
jipicy Messages postés 41342 Statut Modérateur 4 896 > lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité
 
Salut 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
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570 > jipicy Messages postés 41342 Statut Modérateur
 
Re,

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

lami20j
0
mamiemando Messages postés 34184 Statut Modérateur 7 888
 
Hum hum :-)
0