Interface Xdialog
Dernière réponse : dans Programmation
Bonjour a tous,
J'essai d'ajouter une inteface graphique a un script que j'ai créer,
et je bloc dès le debut,
Je demande un mot de passe a l'utilisateur :
#!/bin/bash
DIALOG=${DIALOG=Xdialog}
$DIALOG --title "PassBox" --clear \
mdp=$(Xdialog --stdout --inputbox "Qui es-tu ?" 0 0)
while [ "$mdp" != "123" ]; do
echo "Vous n'etes pas autorisé à utiliser ce script!"
exit
done
Meme lorsque j'entre 123 la reponse est toujour negative:
"Vous n'etes pas autorisé à utiliser ce script!"
Alors si qqun sait ce qui cloche ... merci de son aide..
J'essai d'ajouter une inteface graphique a un script que j'ai créer,
et je bloc dès le debut,
Je demande un mot de passe a l'utilisateur :
#!/bin/bash
DIALOG=${DIALOG=Xdialog}
$DIALOG --title "PassBox" --clear \
mdp=$(Xdialog --stdout --inputbox "Qui es-tu ?" 0 0)
while [ "$mdp" != "123" ]; do
echo "Vous n'etes pas autorisé à utiliser ce script!"
exit
done
Meme lorsque j'entre 123 la reponse est toujour negative:
"Vous n'etes pas autorisé à utiliser ce script!"
Alors si qqun sait ce qui cloche ... merci de son aide..
Autres pages sur : interface xdialog
Lassé par la pub ? Créez un compte
Salut,
Remplace
mdp=$(Xdialog --stdout --inputbox "Qui es-tu ?" 0 0)
Par
Tu nous faisais quelque chose de bizarre là, il y avait deux fenêtres (car deux Xdialog, vu que $DIALOG = Xdialog
)
Remplace
Citation :
$DIALOG --title "PassBox" --clear \mdp=$(Xdialog --stdout --inputbox "Qui es-tu ?" 0 0)
Par
Citation :
mdp=$($DIALOG --title "PassBox" --clear --stdout --inputbox "Qui es-tu ?" 0 0)Tu nous faisais quelque chose de bizarre là, il y avait deux fenêtres (car deux Xdialog, vu que $DIALOG = Xdialog
)
Une autre question... lol
dans ce bout de code :
while [ "$cmpt" != "$nbr" ]; do
echo "life is life "
cmpt=$(($cmpt+1))
Xdialog --title "SendBox" --gauge "Envois" 0 0 [cmpt=$]
l'exmple est bidon, mais c'est pour apprendre lol
metons que la variable nbr est entrée par l'utilisateur un peu plus haut dans le code, pourquoi ça fonctionne pas ?
(J'ai trouver ça sur un site, ils donnent le code mais n'expliquent pas comment s'en servir...
Alors si toi au qqun d'autre pouvais m'aider ... ca serais cool !
Merci d'avance !
dans ce bout de code :
while [ "$cmpt" != "$nbr" ]; do
echo "life is life "
cmpt=$(($cmpt+1))
Xdialog --title "SendBox" --gauge "Envois" 0 0 [cmpt=$]
l'exmple est bidon, mais c'est pour apprendre lol
metons que la variable nbr est entrée par l'utilisateur un peu plus haut dans le code, pourquoi ça fonctionne pas ?
(J'ai trouver ça sur un site, ils donnent le code mais n'expliquent pas comment s'en servir...
Alors si toi au qqun d'autre pouvais m'aider ... ca serais cool !
Merci d'avance !
Vu que je n'avais jamais utilisé de gauge, je viens de faire quelques tests :
- La gauge marche avec des nombres de 0 à 100, si tu dépasses 100, quand elle va arriver à 100, ça va s'arrêter.
Ce qu'il faut faire, c'est que, même si tu as 16 000 ou 150, faut que tu le passes en pourcentage, afin d'avoir une valeur inférieure ou égale à 100%.
Par exemple, ce code ci-dessus va te faire une gauge qui va de 0 à 20, avec un pas de 1 (et qui s'arrête (sleep) une seconde à chaque fois), comme tu peux le voir, une fois arrivée à 20%, la gauge se ferme.
Maintenant, si tu refais la même de 0 à 40, ça va prendre deux fois plus de temps, puis la gauge se fermera à 40%.
A toi de trouver un petit calcul pour tout rapporter sur 100, afin de n'avoir que des nombres entre 0 et 100.
- La gauge marche avec des nombres de 0 à 100, si tu dépasses 100, quand elle va arriver à 100, ça va s'arrêter.
Ce qu'il faut faire, c'est que, même si tu as 16 000 ou 150, faut que tu le passes en pourcentage, afin d'avoir une valeur inférieure ou égale à 100%.
#!/bin/bash
cmpt=0;
nbr=20;
while [ "$cmpt" -lt "$nbr" ]; do
echo "$cmpt";
sleep 1;
cmpt=$(($cmpt+1));
done | Xdialog --gauge "Envois" 0 0
Par exemple, ce code ci-dessus va te faire une gauge qui va de 0 à 20, avec un pas de 1 (et qui s'arrête (sleep) une seconde à chaque fois), comme tu peux le voir, une fois arrivée à 20%, la gauge se ferme.
Maintenant, si tu refais la même de 0 à 40, ça va prendre deux fois plus de temps, puis la gauge se fermera à 40%.
A toi de trouver un petit calcul pour tout rapporter sur 100, afin de n'avoir que des nombres entre 0 et 100.
Ça n'aurais aucune utilité car selon ta thecnique 100% metrons toujours autant de temps a s'executer que 100 autres %
Il faut metre, a mon avis, une variable proportionel a nbr dans le sleep
je sais pas si je suis trés claire.. mais je me comprend en tout cas lol,
Merci de ton aide en tout cas je ne connaissais pas sleep ^^.
Il faut metre, a mon avis, une variable proportionel a nbr dans le sleep
je sais pas si je suis trés claire.. mais je me comprend en tout cas lol,
Merci de ton aide en tout cas je ne connaissais pas sleep ^^.
Si ça aurait une utilité, plus la valeur sera grande, plus ils mettront de temps à arriver à 100%, vu que ça sera en fonction de la valeur maximale !
Je ne peux pas tester là, mais avec quelque chose comme ça, ça devrait le faire, non ?
Je ne peux pas tester là, mais avec quelque chose comme ça, ça devrait le faire, non ?
#!/bin/bash cmpt=0; nbr=20; while [ "$cmpt" -lt "$nbr" ]; do myvar=$(($cmpt/$nbr*100)); echo "$cmpt"; sleep 1; cmpt=$(($cmpt+1)); done | Xdialog --gauge "Envois" 0 0
echo sert à afficher du texte, la valeur d'une variable, etc...
Maintenant, essaie de prendre la portion de texte suivante (la même que je t'ai donné 3 messages plus haut) :
Quand tu l'exécutes, la gauge t'affiche 1%, 2%, 3%, 4%, ... 20% (augmente d'un toutes les secondes) puis l'application se termine.
Maintenant, reprend exactement le même code, mais enlève le echo "$cmpt"
Soit :
Qu'est ce que t'affiche la gauge ? Elle reste à 0% pendant les 20 secondes d'exécution du script.
A ton avis, qu'est ce qui fait que la gauge affiche une valeur ?
Je pense que tu dois pouvoir avoir répondu à cette question.
Tu dois pouvoir avoir répondu à ta question "lorsqu'on fais echo ou notre variable est affichée ?" aussi je pense.
Comprend-tu mieux pourquoi il faut passer la valeur à un pourcentage afin de régler ce soucis ? Ou as tu besoin de plus d'éclaircissement ?
Maintenant, essaie de prendre la portion de texte suivante (la même que je t'ai donné 3 messages plus haut) :
#!/bin/bash cmpt=0; nbr=20; while [ "$cmpt" -lt "$nbr" ]; do echo "$cmpt"; sleep 1; cmpt=$(($cmpt+1)); done | Xdialog --gauge "Envois" 0 0
Quand tu l'exécutes, la gauge t'affiche 1%, 2%, 3%, 4%, ... 20% (augmente d'un toutes les secondes) puis l'application se termine.
Maintenant, reprend exactement le même code, mais enlève le echo "$cmpt"
Soit :
#!/bin/bash cmpt=0; nbr=20; while [ "$cmpt" -lt "$nbr" ]; do sleep 1; cmpt=$(($cmpt+1)); done | Xdialog --gauge "Envois" 0 0
Qu'est ce que t'affiche la gauge ? Elle reste à 0% pendant les 20 secondes d'exécution du script.
A ton avis, qu'est ce qui fait que la gauge affiche une valeur ?
Je pense que tu dois pouvoir avoir répondu à cette question.
Tu dois pouvoir avoir répondu à ta question "lorsqu'on fais echo ou notre variable est affichée ?" aussi je pense.
Comprend-tu mieux pourquoi il faut passer la valeur à un pourcentage afin de régler ce soucis ? Ou as tu besoin de plus d'éclaircissement ?
Lassé par la pub ? Créez un compte