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
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
A voir également:
- Prob boucle et variable en shell
- Classic shell - Télécharger - Personnalisation
- Télé samsung s'éteint et se rallume en boucle - Forum Téléviseurs
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Pc qui s'allume et s'éteint en boucle - Forum Virus
- Le fichier contient un programme écrit en python. le programme construit un mot secret mais il ne l'affiche pas. modifiez ce programme afin que à chaque itération de la boucle : la variable a augmente de 2 la variable b diminue de 1 ajoutez une instruction pour faire afficher le mot secret construit. quel est ce mot secret ? ✓ - Forum Python
3 réponses
Pour moi :
devrait plutôt s'écrire :
Par ailleurs vérifie le contenu de la variable ACTION en mettant juste avant le test :
Bonne chance
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
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) :
Petit détail qui aura peut être son importance : quel shell utilises-tu ?
;-)
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 ?
;-)
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?
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?